SSH服务的搭建
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSH服务的搭建相关的知识,希望对你有一定的参考价值。
参考技术A 管理服务SSH基础服务,SSH是远程连接Linux,管理Linux的服务。
Secure Shell Protocol简写SSH 安全的shell协议
使用的默认的端口为22(一台机器的不同功能就用端口区分)
ssh参数:
-p 指定端口
格式:命令 -p 端口 用户@IP相当于ssh IP
scp命令参数:
-P端口
-r递归
-p保持属性
-l 限制速度
推:
scp -P 22 -rp /data root@172.16.1.7:/tmp
scp -P -rp /data 172.16.1.7:/tmp
拉
scp -P 22 -rp root@172.16.1.7:/data /tmp
scp -P -rp 172.16.1.7:/data /tmp
对比下scp和rsync
scp每一次都是全量考本,加密拷贝。
rsync第一次全量拷贝,远程shell也是加密拷贝
sftp命令:加密的ftp服务,默认缺点不能锁定家目录。
ftp:vsftp。
sftp服务也支持windows ftp客户端:
winscp,flashftp,xshell也支持
常规和服务器交互数据文件:
rz/sz 属于lrzsz
ssh服务配置:
s
使用用户名密码登录
不需要密码登录,使用密钥文件就可以连接服务器。
实践密钥认证:
项目实践:批量管理、批量分发内容项目
1、基于root用户做Linux之间的秘钥认证。
2、生成密钥对(去超市买把锁),不需要指定服务器。
3、在61上生成密钥对(方便)。
4、把锁放到7/8上
C6:
5、ssh-copy-id:原理
6、测试远程执行命令:
7、写个脚本
8、开发脚本实现批量管理服务器:
9、批量发文件:
复杂分发文件脚本:
SSH批量管理如何一键完成:
一键创建及分发秘钥:
十分钟git-服务器搭建ssh登陆
QQ820688215
微信公众号:
1首先,创建一个操作系统用户 git
,并为其建立一个 .ssh
目录。
$ sudo adduser git
$ su git
$ cd
$ mkdir .ssh && chmod 700 .ssh
$ touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
2需要为系统用户 git
的 authorized_keys
文件添加一些开发者 SSH 公钥。 假设我们已经获得了若干受信任的公钥,并将它们保存在临时文件中。 与前文类似,这些公钥看起来是这样的:
$ cat /tmp/id_rsa.john.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCB007n/ww+ouN4gSLKssMxXnBOvf9LGt4L
ojG6rs6hPB09j9R/T17/x4lhJA0F3FR1rP6kYBRsWj2aThGw6HXLm9/5zytK6Ztg3RPKK+4k
Yjh6541NYsnEAZuXz0jTTyAUfrtU3Z5E003C4oxOj6H0rfIF1kKI9MAQLMdpGW1GYEIgS9Ez
Sdfd8AcCIicTDWbqLAcU4UpkaX8KyGlLwsNuuGztobF8m72ALC/nLF6JLtPofwFBlgc+myiv
O7TCUSBdLQlgMVOFq1I2uPWQOkOWQAHukEOmfjy2jctxSDBQ220ymjaNsHT4kgtZg2AYYgPq
dAv8JggJICUvax2T9va5 gsg-keypair
3 将这些公钥加入系统用户 git
的 .ssh
目录下 authorized_keys
文件的末尾:
$ cat /tmp/id_rsa.john.pub >> ~/.ssh/authorized_keys
$ cat /tmp/id_rsa.josie.pub >> ~/.ssh/authorized_keys
$ cat /tmp/id_rsa.jessica.pub >> ~/.ssh/authorized_keys
4
现在我们来为开发者新建一个空仓库。可以借助带 --bare
选项的 git init
命令来做到这一点,该命令在初始化仓库时不会创建工作目录:
$ cd /opt/git
$ mkdir project.git
$ cd project.git
$ git init --bare
Initialized empty Git repository in /opt/git/project.git/
上命令Git创建一个空仓库,服务器上的Git仓库通常都以.git结尾。然后,把仓库所属用户改为git:
$ chown -R git:git project.git
其他开发者可以克隆此仓库,并推回各自的改动,步骤很简单:
$ git clone git@gitserver:/opt/git/project.git $ cd project $ vim README $ git commit -am \'fix for the README file\' $ git push origin master
需要注意的是,目前所有(获得授权的)开发者用户都能以系统用户 git
的身份登录服务器从而获得一个普通 shell。 如果你想对此加以限制,则需要修改 passwd
文件中(git
用户所对应)的 shell 值。
借助一个名为 git-shell
的受限 shell 工具,你可以方便地将用户 git
的活动限制在与 Git 相关的范围内。该工具随 Git 软件包一同提供。 如果将 git-shell
设置为用户 git
的登录 shell(login shell),那么用户 git
便不能获得此服务器的普通 shell 访问权限。 若要使用 git-shell
,需要用它替换掉 bash 或 csh,使其成为系统用户的登录 shell。 为进行上述操作,首先你必须确保 git-shell
已存在于 /etc/shells
文件中:
$ cat /etc/shells # see if `git-shell` is already in there. If not...
$ which git-shell # make sure git-shell is installed on your system.
$ vim /etc/shells # and add the path to git-shell from last command
现在你可以使用 chsh <username>
命令修改任一系统用户的 shell:
$ chsh git # and enter the path to git-shell, usually: /usr/bin/git-shell 将 /usr/bin/git-shell复制回车
这样,用户 git
就只能利用 SSH 连接对 Git 仓库进行推送和拉取操作,而不能登录机器并取得普通 shell。 如果试图登录,你会发现尝试被拒绝,像这样:
$ ssh git@gitserver fatal: Interactive git shell is not enabled. hint: ~/git-shell-commands should exist and have read and execute access. Connection to gitserver closed.
以上是关于SSH服务的搭建的主要内容,如果未能解决你的问题,请参考以下文章