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

Linux下SSH跳转无密码登录或执行命令

2013-03-21 15:00 477 查看
概述

在开发过程当中我们经常会在两台linux系统服务器之间传输文件,每次登陆都需要手动输入密码,这样重复性的工作浪费时间。如果能实现一次操作永久登陆这样会提高不少工作效率。因此提出以下需求。

需求:

实现两台linux系统服务器之间无密码登陆和执行脚本或shell命令。

实现方式

建设我们有两台服务器IP分别是A,B. 要从服务器A上访问服务器B,即实现A无密码登陆服务器B或执行命令。执行以下步骤即可完成:

1. 首先在IP为A的服务器上执行

ssh-keygen 命令

一路回车,内容如下

[user_a@ ~]$ ssh-keygen

Generating public/private rsa key pair.

Enter file in which to save the key (/export/home1/inms_col/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /export/home1/inms_col/.ssh/id_rsa.

Your public key has been saved in /export/home1/inms_col/.ssh/id_rsa.pub.

The key fingerprint is:

这样,就在当前用户目录下的.ssh文件夹下生成了两个文件id_rsa和id_rsa.pub文件

2. 将id_rsa.pub文件用scp命令传输到Ip为B的服务器用户的.ssh目录下。

如:scp id_rsa.pub user_b@B:/export/home1/B/.ssh/id_rsa.pub

如果在b的/user_b/.ssh/目录下有 authorized_keys 这个文件的话,则直接利用cat命令将id_rsa.put文件内容添加到 authorized_keys后

命令如下: cat id_rsa.pub >> authorized_keys

注意,不能利用手工的拷贝,否则会导致失败,只能用cat >>

3. 修改authorized_keys 的权限为600,如下:chmod 600 authorized_keys

然后删除id_rsa.pub就可以了,大功告成,到A的机器上试试 ssh user_b@B ,看看直接进去了吧,不用再输入密码了!

如果想实现A服务器又可以访问C服务器,那么参照2,3步骤在服务器C上也做下操作即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: