首页 > linux > 2台linux ssh免密登录

2台linux ssh免密登录

作者:bin
目录
[隐藏]

使用场景:在编写shell脚本时候,经常会遇到将文件传输至另一个服务器,并且使用文件。

使用ssh免密登录优点在于,不用每次都主动去输入密码

一、生成公匙、私匙

cd ~/.ssh

ssh-keygen //这条命令会有3次输入,直接回车即可

这样,在~/.ssh/目录下就生成了id_rsa和id_rsa.pub。

id_rsa:是私钥,当前机器用;

id_rsa.pub:是公钥,其他机器用;

二、拷贝密匙至目标服务器

这里可以理解为:

要登录qq,要做的是将”账号密码”给qq(设置账号密码),然后使用”账号密码”进行登陆qq.

这里的id_rsa就是”账号密码”,只要把id_rsa.pub给想登录目标服务器,id_rsa与id_rsa.pub匹配,就可以免密登录了.

scp  ~./.ssh/id_rsa.pub  root@172.20.0.141:/root/.ssh

这里使用root作为例子,也可以使用特定账户

三、将客户端公钥内容复制进authorized_keys文件中

ssh root@172.20.0.141    //此时还要输入密码

cd ~./ssh

cat id_rsa.pub >> authorized_keys

四、免密登录

exit  //退出远程主机

ssh root@172.20.0.141  //再使用这条命令不需要输入密码了

 

五、可能会遇到的问题

上面的过程完整的做完了,但是ssh root@172.20.0.141,依然需要输入密码

此时可以使用ssh的客户端调试方法进行调试

输入命令

ssh -vvv root@172.20.0.141

在结果中找到

debug2: we sent a publickey packet, wait for reply
debug3: Wrote 368 bytes for a total of 1645
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password 
debug1: Trying private key: /root/.ssh/id_dsa 
debug3: no such identity: /root/.ssh/id_dsa
debug1: Trying private key: /root/.ssh/id_ecdsa
debug3: no such identity: /root/.ssh/id_ecdsa
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password

结果可以明显看到,尝试使用private key去登录,但是失败了,进而使用密码登录

遇到这个问题,请检查一下2点,

1、文件权限

目标服务器的

~ 目录是否权限是0755,即drwxr-xr-x

~./ssh 目录权限是0700,即drwx——

~./ssh/authorized_keys 权限是0600,即-rw——-

2、检查配置文件

目标服务器的sshd_config , 查看以下内容是否正确

vim /etc/ssh/sshd_config

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

 

 

您必须 [ 登录 ] 才能发表留言!