SSH不输入密码连接远程Linux主机

来源:互联网 发布:qq视频美容软件 编辑:程序博客网 时间:2024/04/28 08:36
主机IP:10.10.3.254
远程主机IP:10.10.2.95

1) 在本地主机生成密钥对
ssh-keygen -t rsa


这个命令生成一个密钥对:id_rsa(私钥文件)和id_rsa.pub(公钥文件)。默认被保存 在~/.ssh/目录下。

2) 将公钥添加到远程主机的 authorized_keys 文件中

将文件上传到远程主机 中
scp ~/.ssh/id_rsa.pub root@10.10.2.95:/root

SSH到登陆到远程主机,将公钥追 加到 authorized_keys 文件中
cat /root/id_rsa.pub >> /root/.ssh/authorized_keys

3) 重启 open-ssh 服务
/etc/init.d/ssh restart


4) 测试
[root@host54 .ssh]# ssh root@10.10.2.95
Last login: Fri Jun 19 10:19:49 2009 from 10.10.3.254
[root@localhost ~]#
成 功!!

注意:
如果报下面的错误:
[root@host54 .ssh]# ssh root@10.10.2.95
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0444 for '/root/.ssh/id_rsa' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.

解决:需要将主机(IP:10.10.3.254)上的/root/.ssh/id_rsa权限设置 如下:
chmod 600 /root/.ssh/id_rsa 即可解决.

另注:
原先使用虚拟机上做的时候就不行 不知道是不是虚拟机上有什么限制 很奇怪!
之后改用实际的服务器上应用 “SSH不输入密码连接远程Linux主机”方法 即可。

http://blog.csdn.net/daimin1983/archive/2009/06/19/4282098.aspx


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

场景:我们通常管理服务器,以一个工作站通过ssh,来管理所有的服务器主机。这样对于安控来讲比较容易控制。而在这个工作站,我们用ssh- keygen来生成所需要的公钥和私钥。并将公钥(客户端:id_*.pub)内容追加到服务器上的认证文件(服务器 端:authorized_keys)里面。

注意事项:id_*.pub、authorized_keys所在的位置。千万不要弄混了这个逻辑问题。如果想不明白。就仔细想想。不过当时我真的是想不 明白,照理上,一台服务器,其控制权限,不应该由服务器来产生并且分发吗?后来又想,如果你要是管100台服务的话,你是不是要在100台服务器上来创建 这些密钥对?是不是很麻烦?

工作站(client): ~/.ssh/id_*.pub
服务器(server): ~/.ssh/authorized_keys

疑难解答:为什么我创建了密钥对,却还是需要密码?root用户可以,普通用户就是不行?真TMD的奇怪。

1: 像上面说的,你一定是弄反了。
2: 权限问题。看看你的umask值。root的umask是0022,普通用户的掩码是0002.这样意味着什么,意味着root用户和普通创建的默认文件 的权限与普通用户的权限不一样。root用户默认去掉了组用户的W权限。而普通用户是赋予组内用户的W权限。废话说了一堆。看下面。

解决方法:
不管怎样保证你的server端目 录~/.ssh(0700)和~/.ssh/authorized_keys(0600)只有属主拥有读写权限。这样肯 定可以通过,至于client端你设置成777都没有关系,不受影响。这点想起我就想笑,插点题外话,曾经有一个兄弟去维护主机,可能是做RAC类似的东 西吧。反正那边的人自作主张的认为,权限给到777,总应该没有问题吧。结果恰恰导致无法访
问。

后记:
补充权限错误的日志分析。(服务器Server端)

[root@minot ~]# tail -f /var/log/secure
………………….
Mar 28 09:41:14 minot sshd[3152]: Authentication refused: bad ownership or modes for file /root/.ssh/authorized_keys
原创粉丝点击