两台linux之间,免密配置好之后,可以免密ssh登录,可以免密传输文件,方便使用,另外在jenkins部署应用的时候,也会用到
两台服务器,分别是A,B
A上面的用户userA,密码passA
B上面的用户userB,密码paasB
在这两个用户之间配置免密
这里,我们以设置A到B的免密传输为例
1.首先,确定两台机器可以正常传输文件
从A到B
scp tmp.txt userB@192.168.1.2:/home/userBscp是 secure copy的缩写,可能也可以理解为ssh copy ,scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。
这个命令的使用方法
scp命令: 1、本地文件拷贝到远程服务器: scp 文件名 用户名@计算机IP(或者计算机名称):远程路径 2、从远程服务器将文件拷回本地:scp 用户名@计算机IP(或者计算机名称):文件名本地路径 3、将本地目录拷贝到远程服务器:scp -r 目录名 用户名@计算机IP(或者计算机名称):远程路径 4、从远程服务器将目录拷回本地:scp -r 用户名@计算机IP或者(或者计算机名称):目录名本地路径我们需要把tmp.txt拷贝到B服务器下的/home/userB目录,使用userB账号
执行上面的命令后,会要求输入userB的密码,正确输入userB的密码,文件会正确拷贝到B服务器的/home/userB目录下
如果拷贝失败,查看B服务器的/etc/ssh/sshd_config文件,关键配置
PasswordAuthentication yes有可能这一项设置成了no
若这个sshd_config有修改,则需要重启sshd
service sshd restart2.使用useA登录到A机器上,执行命令
ssh-keygen -t rsa -P ""这个命令用来生成基于userA用户的A服务器的秘钥对
-P "" 表示不设置密码
命令执行后,一路按回车,直到执行完成。
此时,在userA的用户目录下,会生成一个 .ssh目录,这个目录是隐藏的,直接ls是无法看到的,
cd /home/userA/.ssh ls可以看到生成的两个文件 id_rsa id_rsa.pub
id_rsa 这个叫私钥
id_rsa.pub 这个叫公钥
3.将 id_rsa.pub 拷贝到 B机器上,可以通过自己电脑的中转拷贝,也可以用上面的scp命令拷贝
然后,到B机器上,执行命令:
cat id_rsa.pub >> /homg/userB/.ssh/authorized_keys命令的意思就是将 id_rsa.pub 的内容,追加到authorized_keys这个文件中
为何是追加呢,因为如果有多台服务器要建立到B机器的免密登录,都需要将公钥写到这个文件里
为何我们要采用这种方式写入,而不是直接拷贝公钥内容过来呢
因为有时候在拷贝过程会出问题,比如换行,空格等等
直接通过命令追加,能够避免这些问题
通过命令
cat id_rsa.pub cat /homg/userB/.ssh/authorized_keys查看是否正确追加
4.在A机器上,执行
scp tmp.txt userB@192.168.1.2:/home/userB如果没有要求输入密码,就执行成功,则证明配置成功,如果还是需要密码,参考下面第五步
5.首先,查看B服务器的/etc/ssh/sshd_config文件,关键字PubkeyAuthentication 确保这个值是 yes
若这个sshd_config有修改,则需要重启sshd
service sshd restart然后,使用命令
ls -l
查看B服务器文件及文件夹的权限
/home/userB 文件夹的权限为 700,即 显示的权限应该是 drwx------
/home/userB/.ssh文件夹的权限也为700
/home/userB/.ssh/authorized_keys 文件权限为600,即,显示的权限应该是 -rw-------
如果不是上述权限,使用命令chmod来修改
命令示例
chmod 700 /home/userB设置完成后,在A服务器使用scp命令测试,如果还是无法免密,在A服务器上执行命令
ssh -vvv userB@192.168.1.2最后的ip是B服务器的ip地址
执行完成后,会得到一长串的打印输出,查看错误,然后百度吧。。。
版权申明:本站文章均来自网络,如有侵权,请联系01056159998 邮箱:itboby@foxmail.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有