远程登录ssh免密码

问题:

假如我们现在有两台机器:ServerA和ServerB,现在想要让ServerA不用输入密码就能够进行访问。

方法和原理:

我们使用ssh - keygen在ServerA上生成私人和公共密钥,将生成的公共密钥拷贝到远程机器ServerB上后,就可以使用ssh命令无需密码登录到另外一台机器ServerB上。

在linux系统中,ssh是远程登录的默认工具,因为该工具的协议使用了RSA和DSA的加密算法【默认是安全域算法】,该工具做linux系统的远程管理是非常安全的。

实验步骤:

1。登录ServerA

2。ssh - keygen - t, rsa,将会生成公钥和私钥文件id_rsa和id_rsa . pub【如果一直回车下去,最后这两个文件应该在/home/USER/美元。ssh下面】

3。将.pub文件复制到ServerB机器的. ssh目录下,并保存为authorized_keys

可以使用:

ssh-cop-id命令会将指定的公钥文件复制到远程计算机

[oracle@Test232 ~] ssh-copy-id我~/. ssh/id_rsa美元。酒吧oracle@192.168.55.232

28日oracle@192.168.55.232的密码:,

现在尝试登录到机器,与“ssh oracle@192.168.55.232”,并检查:

。ssh/authorized_keys

,以确保我们没有添加额外的你不曾预料到的键。

[oracle@Test232 ~]美元ssh oracle@192.168.55.232

oracle@192.168.55.232的密码:,

最后登录:2011年11月24日16:05:32星期四从192.168.55.229

[oracle@Test232 ~]美元,

4。大功告成,从一个机器登录B机器的目标账户,不再需要密码了

5。设置文件和目录权限【这一步可以省略,但是为了安全起见,加上也是有必要的~】

设置authorized_keys权限

chmod 644 authorized_keys 

设置。ssh目录权限

700年chmod - r .

6。要保证。ssh和authorized_keys都只有用户自己有写权限。否则验证无效。(今天就是遇到这个问题,找了好久问题所在),其实仔细想想,这样做是为了不会出现系统漏洞。

报错:

主机的真实性”192.168.20.59(192.168.20.59)”不能成立。,

RSA密钥指纹是6 a: 37: c0: e1:09: a4:29:8d: 68: d0: ca: 21:20:94:是:18。,

你确定你要继续连接(是/否)?是的,

警告:永久“192.168.20.59”(RSA)添加到已知的主机列表。,

root@192.168.20.59的密码:,,

没有权限,请再试一次。,

root@192.168.20.59的密码:,,

没有权限,请再试一次。,

root@192.168.20.59的密码:,,

没有权限(publickey gssapi-with-mic,密码)。,

如果说以上权限没有问题的话,那就赶紧去看看你的配置文件吧,因为有人会喜欢改这个东东,导致你无论如何都不会成功:

打开/etc/ssh/ssh_config文件,找到以下部分:

#,IdentityFile ~/sh/身份

,IdentityFile ~/sh/id_rsa

看看你的私钥名字是不是这个~/sh/id_rsa

哈哈,还是得好好看配置文件喽~

假如有台中控机已经打通了到各台应用主机间的无密码远程登陆,现在需要打通另一台中控、下面是我写的脚本来实习此功能:

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #实现中控无密码登陆# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

# !/bin/bash

#作者:zhuying

scriptdir=/home/oracle/zy/changecps

的ip的grep - v ^ #/cps“scriptdir美元”。ip的

,做,,,scp/home/oracle/zy/changecps/169keys oracle@ $ ip: ~/& lt;/dev/null

,,,,ssh $ ip”猫~/169键在祝辞/home/oracle/.ssh/authorized_keys; rm ~/169键”& lt;/dev/null

,,,,ssh ip”猫/home/oracle/.美元ssh/authorized_keys排序| | uniq祝辞/home/oracle/.ssh/tmp.键”& lt;/dev/null

,,,,ssh ip”mv/home/oracle/.ssh/tmp.美元键/home/oracle/.ssh/authorized_keys”& lt;/dev/null

,,,,ssh/home/oracle/. ip”chmod 644美元ssh/authorized_keys”& lt;/dev/null

完成# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #,实现中控无密码登陆# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

ps:

如果我们添加公钥后,还是无法访问,也可能是ServerA主机上面的一个文件known_hosts中已经存在ServerB上的ip信息,删除重新访问即可。

另外,如果以上方法尝试过后还是不行,可能是因为登录失败次数过多被锁定,这个时候我们就需要去看看我们的系统日志了/var/log/信息,将之前的锁定信息日志删除就可以了。

问题:


(1)连接关闭$ ip

远程登录ssh免密码