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

Linux 下不用输入密码通过ssh登入对方主机

2010-07-15 11:28 489 查看
LINUX程序员在日常工作中都会遇到远程登陆这样的问题,每次输入密码是不是很烦人.

我就在这整理一下,ssh证书到底是怎么搞的!

在linux下使用ssh认证,不输入密码访问另一台机器

在工作中由于常用到ssh登录其它机器,所在每台机器上做了ssh认证,这样就不用每次都输入繁琐的密码。

有两台机器:server_1 和 server_2

账号都为:work

转到work账号下:su - work

运行:ssh-keygen -d (一路回车下去 )

命令输出为:

Enter file in which to save the key (/home/work/.ssh/id_dsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /home/work/.ssh/id_dsa.

Your public key has been saved in /home/work/.ssh/id_dsa.pub.

The key fingerprint is:

32:21:e1:3b:7d:6e:de:4b:39:da:af:38:fe:90:40:61

work@server_1.server.com

在/home/work目录下就产生了.ssh的隐含目录,进入些目录下产生两个文件:

id_dsa ------------ 私钥文件

id_dsa.pub ------------ 公钥文件

将id_dsa.pub复制一份文件名为:authorized_keys2

并将 authorized_keys2 的属性改为 600 即文件所属用户有读和写的权限,组用户和其它用户禁止读写,用命令:

代码:

cp id_dsa.pub authorized_keys2

chmod 600 authorized_keys2

同样在server_2上做以上操作,下一步就实现真正的ssh认证了:

将server_1上/home/work/.ssh目录下的id_dsa.pub公钥文件拷到server_2的/home/work/.ssh目录下(注意:不要覆盖掉server_2的id_dsa.pub,拷时要改名)如:

代码:

[work@server_1 .ssh]$ scp id_dsa.pub

[email=work@server_2:.ssh/server_1.pub]work@server_2:.ssh/server_1.pub[/email]

在server_2的/home/work/.ssh目录下就有了如下文件:

authorized_keys2

id_dsa

id_dsa.pub

server_1.pub

用命令:

代码:

cat server_1.pub >> authorized_keys2

(注意一定要用追加操作 ">>" 不能用 ">")

这样server_1到server_2的ssh认证就做好了。在server_1上用命令:

代码:

ssh

[email=work@server_2]work@server_2[/email]

就直接登录到server_2上,而不用输入密码了。

server_2到server_1的认证同上操作即可。

======================================================

另外一种方法

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

#ssh-keygen

生成密钥,在生成过程中会要求输入pass phrase,这个是用来保护私钥的使用的,即每次你使用私钥的时候需要先输入这个密码,因此这里不要输入任何字符,直接回车。

#ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.0.1

192.168.0.1 为远程主机
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux 密码 主机 ssh 登入