您的位置:首页 > 运维架构 > Linux

linux主机间实现ssh/scp/rsync免密码登录

2017-04-25 17:18 656 查看
需求:在A主机使用ssh、scp、rsync能免密码登录B主机

A主机上操作:

[appabc@mvxl1485 scripts]$ ssh-keygen  -t  rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/abcapp/appabc//.ssh/id_rsa): 

Enter passphrase (empty for no passphrase): 

Enter same passphrase again: 

Your identification has been saved in /abcapp/appabc//.ssh/id_rsa.

Your public key has been saved in /abcapp/appabc//.ssh/id_rsa.pub.

The key fingerprint is:

a7:6c:73:27:ff:7c:df:68:67:85:a0:16:35:44:ad:23 appabc@abc020

The key's randomart image is:

+--[ RSA 2048]----+

|           oo.   |

|            o .  |

|           . o   |

|          E +    |

|        S .+ o . |

|       . oo   . .|

|        =.o .   .|

|       . o + ...=|

|            .o+++|

+-----------------+

[appabc@mvxl1485 scripts]$ cd $HOME

[appabc@mvxl1485 appabc]$ cd ~/.ssh

[appabc@mvxl1485 .ssh]$ 

[appabc@mvxl1485 .ssh]$ ls -ltr

?? 12

-rw-r--r-- 1 appabc abc 2368 11? 20 15:07 known_hosts

-rw-r--r-- 1 appabc abc  399 11? 20 15:41 id_rsa.pub

-rw------- 1 appabc abc 1675 11? 20 15:41 id_rsa

上面在主机A上生成了公钥和密钥,只需要将公钥copy到主机B的.shh目录下,并改名为authorized_keys。若B主机的$HOME目录下不存在.ssh目录,则建立.ssh。

scp -r id_rsa.pub 172.16.12.123:/abcapp/appabc/.ssh/authorized_keys即可,再ssh 172.16.12.123 date不用输入密码。

若互相免密码登录,则在B主机上作同样操作一次。

问题一:

如果ssh本机要求提示输入密码,而ssh其它主机正常,刚按以下方法处理:

在主机A上执行如下:

在本机:

cd /abcapp/appabc/.ssh/

cp id_rsa.pub authorized_keys

这步完成后,正常情况下就可以无密码登录本机了,即ssh localhost,无需输入密码。

问题二:

按上面步骤建立A主机到B主机的免密码登录,但不生效,依然还是要输入密码:

如下:

[apps@app--1 .ssh]$ ssh 10.16.25.98 date

apps@10.16.25.98's password:

Tue Apr 25 17:03:15 CST 2017

[apps@app--1 .ssh]$ ssh 10.16.25.98 date

apps@10.16.25.98's password:

在B主机上查看.ssh的目录权限:

[apps@mvxl179 ~]$ ls -al|grep ssh

drwxrwxr-x  2 apps apps 4096 Apr 25 16:56 .ssh

.ssh目录具有775权限,改为700试试。

[apps@mvxl1079 ~]$ chmod 700 .ssh

[apps@mvxl1079 ~]$ ls -al|grep ssh

drwx------  2 apps apps 4096 Apr 25 16:56 .ssh

A主机上再ssh登录B主机,不再提示输入密码。

[apps@app--1 .ssh]$ ssh 10.16.25.98 date

Tue Apr 25 17:13:56 CST 2017

正确的做法是不用scp来复制,采用ssh-copy-id [-i [identity_file]] [user@]machine来完成复制,这样直接建好.ssh目录,而且权限也帮忙设置好,不会出现上面的问题二。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: