Linux服务器间无需密码的SSH配置
来源:互联网 发布:淘宝e5620电脑能买吗 编辑:程序博客网 时间:2024/04/30 08:22
openSSH的默认设置是允许root可以直接login. (PermitRootLoginyes), 暂且保留这种设置,我们先考虑如何用SSH直接从A到B不需要密码,假设用用户root登录到A,想SSH到B也作为root不需要密码。
- 分别从A和B上登录作为root后运行ssh-keygen,目的是简单地在/root下创建目录.ssh,当提示输入
passphase时打入两次回车。这将生成/root/.ssh/identity and/root/.ssh/identity.pub - 先测试一下,从A登录作为root,打入#ssh B,会要求提示root password。
- 现在从A登录作为root,运行scp /root/.ssh/identity.pubB:/root/.ssh/authorized_keys。
文件名必须不能弄错。 - 现在再从A运行#ssh B则不需要密码了:)
基本原理:
如果你希望从A作为用户user1 SSH 到B作为用户user2,若要用RSA键对法认证且不需要密码,则B上的ssh后台程序拿出~user2/.ssh/authorized_keys中的与A有关的RSA公钥来对A上的以user1身份运行的ssh客户程序进行挑战,前面我们已经把A上的identity.pub拷贝到B上作为authorized_keys了。则A保持私钥identity,而B上的sshd又拿出A的公钥来挑战,因此成功,你可以加很多行到authorized_keys以允许其它服务器的公钥可以加进来。
实际应用举例:
使用SSH命令连接一台服务器,默认情况下会提示我们输入密码:
willis:~ # ssh 192.168.4.249
Password:
创建密钥:
willis:~ # ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
ae:1e:a6:49:b9:51:1e:27:bc:a6:7d:dd:bb:6b:1a:55root@willis
willis:~ #
注意:输入上面的ssh-keygen命令后,不用输入任何信息,直接按回来就可以了,其中参数-t rsa是加密的类型,创建后的密钥在用户主目录中的隐藏目录.ssh中,
willis:~/.ssh # ls
authorized_keys id_rsa id_rsa.pub known_hosts
willis:~/.ssh #
id_rsa.pub是公钥,id_rsa是私钥,known_hosts保存着所有已发生连接服务器的信息,需要将公钥里的信息拷贝到登陆服务器用户主目录中的隐藏目录.ssh的文件authorized_keys中,
先看看*.pub文件的内容:
willis:~/.ssh # cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAz61yRO3qGkjNPFpYd9nW4O5F1byghbrCXlxMtB3IKDVHxX9ojybRzZcDDl6KN8w0hq08vWpgjlC
GkYcU75BXCk7zA/5jABejIUOMzgzC+A9b0eNm9ebTInXmfWlYf3P+axDgUlJ84MTAxa68l+Q/6uYc3KbVSsttB6/F37DRZGlTdSyKn
19BimZtZ/M7lyMtqJpYovypxkesbkJjW85sIr2lZeuxqRZWz1ixBwMQyljUvwbHvCS91mzjS76ngKchOCyt9XbwHuL/cXHKMOHgcb
uDqZS8kZFycwVkaNc5f+pZuQ/W8X9Iei35yUEa8qI53Z9o/09fBdOJbl7W5eXLyw==root@willis
willis:~/.ssh #
拷贝文件:
willis:~/.ssh # scp id_rsa.pubroot@192.168.4.249:/root/.ssh/192.168.4.49
Password:
id_rsa.pub 100% 394 0.4KB/s 00:00
willis:~/.ssh #
scp命令和ssh命令都属于同一个包,前面的s都表示secure,这样无论在传输数据或是远程连接都是经过加密的,不用担心数据被直接截获。拷贝过去之后,先登陆到这台服务器上。
willis:~/.ssh # ssh 192.168.4.249
Password:
Last login: Sun Jul 8 11:15:18 2007 from 192.168.4.49
Have a lot of fun...
amd64:~ #
amd64:~/.ssh # ls
192.168.4.49 authorized_keys authorized_keys2 id_rsa id_rsa.pub known_hosts
amd64:~/.ssh #
192.168.4.49就是刚才传过来的公钥文件,为了保证文件的唯一和可管理性,建议用这个文件命名的方式,要不然信任关系建多了就不好管理了,将这个文件的内容复制到authorized_keys文件中:
amd64:~/.ssh # cat 192.168.4.49
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAz61yRO3qGkjNPFpYd9nW4O5F1byghbrCXlxMtB3IKDVHxX9ojybRzZcDDl6KN8w0hq08vWpgjlCGkYcU75BXCk7zA/5jABejIUOMzgzC+A9b0eNm9ebTInXmfWlYf3P+axDgUlJ84MTAxa68l+Q/6uYc3KbVSsttB6/F37DRZGlTdSyKn19BimZtZ/M7lyMtqJpYovypxkesbkJjW85sIr2lZeuxqRZWz1ixBwMQyljUvwbHvCS91mzjS76ngKchOCyt9XbwHuL/cXHKMOHgcbuDqZS8kZFycwVkaNc5f+pZuQ/W8X9Iei35yUEa8qI53Z9o/09fBdOJbl7W5eXLyw==root@willis
amd64:~/.ssh # cat 192.168.4.49 >> authorized_keys
注意:要用“>>”这个符号,该符号表示追加,不会将以前的内容删掉,默认情况下,authorized_keys这个文件是不存在的,需要手动来创建,因为比较长不太好记忆,可以通过这个方法来查找:
amd64:~/.ssh # man ssh-keygen
显示帮助信息后,搜索"auth"这个关键字就可以了,下面就让我们重新登陆测试一下,先退出当前登陆的主机环境:
amd64:~/.ssh # exit
重新SSH连接:
willis:~/.ssh # ssh 192.168.4.249
Last login: Sun Jul 8 11:26:41 2007 from 192.168.4.49
Have a lot of fun...
amd64:~ #
如果配置和文件名的拼写都正确,那么将不会再提示输入密码的信息,根据我的经验,大多数配置失败都是因为authorized_keys的文件命令有误,所以要多多注意。好了!配置到这里,SSH的信任关系就成功了,虽然很简单,但有很多概念性的东西需要我们掌握,如果想进一步了解,可以看看相关的帮助文档,还有/etc/ssh目录中的SSH配置文件
- Linux服务器间无需密码的SSH配置
- Linux服务器间无需密码的SSH配置
- Linux下无需输入密码自动登陆ssh服务器方法
- linux多台服务器之间ssh连接无需密码
- 多台Linux服务器SSH相互访问无需密码
- ssh无需密码登陆配置
- 有关无需密码使用密钥登录ssh服务器的知识
- 多台Linux主机无需密码直接连接的SSH配置
- ssh连接服务器无需输入密码
- linux ssh互信配置 - 服务器间免密码登陆
- Linux多台服务器间SSH免密码登录配置
- Linux多台服务器间SSH免密码登录配置
- Linux多台服务器间SSH免密码登录配置
- ssh/sftp无需密码登录配置
- SSH 设置无需密码登陆服务器以及解决SSH登陆慢的问题
- SSH无需输密码的认证问题
- 无需密码直接ssh或sftp到另外一个服务器的方法
- SSH登录无需密码
- 如果还有明天
- 从头再来
- windows7系统下安装oracle 10g
- windows7系统下安装oracle 10g
- SICP第二章40~42题解答
- Linux服务器间无需密码的SSH配置
- 什么是IDL和MIDL
- Google搜索的使用技巧
- “Computer Management Snapin Launcher已停止工作”的解决方案
- 多线程---使用ManualResetEvent来控制线程间的同步(实现了消费者和生产者模式)
- 中文字体的英文名称对照表
- Sql Server 2005 Express卸载顺序
- 偿还
- SQL Server 2008安装路径出错解决办法