Newsflash

为了适应用户的使用,本站重新规划;由于时间上的关系,决定采用现成的CMS系统Joomla,同时根据我们的用户群体特点选用了常用的Joomla插件并进行优化。历时1个月的工作,今日正式上线。

 
powered_by.png, 1 kB

中文PHP arrow 网络应用 arrow Linux应用 arrow linux服务器之间的无密码登录方式设置
linux服务器之间的无密码登录方式设置 输出PDF 打印 电子邮件
用户评分: / 0
好 
采编: Boban   
2007-11-22
openSSH的默认设置是允许root可以直接login. (PermitRootLogin yes),暂且保留这种设置,我们先考虑如何
用SSH直接从A到B不需要密码,假设用用户root登录到A,想SSH到B也作为root不需要密码。

软硬件环境:
两台linux服务器A和B
都编译安装上最新版的openSSH(建议)

openSSH的默认设置是允许root可以直接login. (PermitRootLogin yes),暂且保留这种设置,我们先考虑如何
用SSH直接从A到B不需要密码,假设用用户root登录到A,想SSH到B也作为root不需要密码。

1. 分别从A和B上登录作为root后运行ssh-keygen,目的是简单地在/root下创建目录.ssh,当提示输入
passphase时打入两次回车。这将生成/root/.ssh/identity and /root/.ssh/identity.pub
2. 先测试一下,从A登录作为root,打入#ssh B,会要求提示root password。

3. 现在从A登录作为root,运行scp /root/.ssh/identity.pub B:/root/.ssh/authorized_keys。
文件名必须不能弄错。

4. 现在再从A运行#ssh B则不需要密码了:)

基本原理:
1。 如果你希望从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以允许其它服务器的公钥可以加
进来。

常见应用举例:

1. 在A上以用户root SSH到B上作为普通用户user而不是root,因为为了安全,有时不需要作为root,只需要作
为普通用户不需要密码以完成相应工作即可。

登录作为root在A上
A# scp /root/.ssh/identity.pub user@B:/home/user/.ssh/authorized_keys

2. tar一批文件从A到B。
A# tar cvf - /etc | ( ssh B tar xvf -)

3. 运行A上的cronjob,对某文件作改动后传到B
0 1 * * * cat /etc/shadow | awk -F: '{print $1":"$2}' | (ssh B 'cat > /home/passwd')

常见问题:
1. 这种方式的SSH需要B上的sshd_config中允许直接的root login (PermitRootLogin yes).
2. 我有服务器A和其它服务器B,C,D。我想从A SSH到这些服务器但不要自动,最好输入RSA passphase,但太
麻烦,怎么办?
a. 要A上运行ssh-keygen时输入passphase字。
b. 要登录到A上后运行A#ssh-agent bash
c. 再运行ssh-add加passphase进入内存
d. 再运行ssh B or SSH C or SSH D,则不再需要密码,密码对只需输一次
e. 最后退出shell前输入ssh-agent -k 。

 
< 上一篇   下一篇 >
© 2000-2008 中文PHP网 版权所有 所有内容均由本站制作,未经许可,不得转载!
站长信箱:webmaster [at] 21php.com 沪ICP备05002508号
Joomla! is Free Software released under the GNU/GPL License.