linux 远程ssh免密登录

写在前面

先说说需求:

我们平时开发、运维操作linux过程中经常需要实现将远程文件拷贝到本地或者本地文件拷贝到远程;执行远程命令等操作;这个时候建立ssh免密登录应该是一个比较好的选择;

原理

在linux系统中,ssh是远程登录的默认工具,因为该工具的协议使用了RSA/DSA的非对称加密算法;非对称加密算法会分别产生公钥和私钥;

现在有两台机器:ServerA和ServerB,ServerA需要免密登录ServerB,我们先在ServerA生成公钥和私钥,把公钥拷贝到ServerB指定的文件下,ServerA就可以免密登录ServerB了;

以下方法一和方法二都是使用依据上面的原理实现;

方法一:使用ssh-copy-id 命令拷贝密钥:

1、ServerA执行ssh-keygen生成公私钥;

ssh-keygen

公私钥 默认生成路径/root/.ssh(这里的root是用户名,如果你是其他用户替换即可)

如图:这里会让你输入密钥的保护密码,我这里是一路回车(也就是不设置密钥密码)

1547276774262

生成的/root/.ssh的文件:

1547276894955

2、使用ssh-copy-id将公钥复制到ServerB中

ssh-copy-id -i id_rsa.pub文件 ServerB用户名@ServerB_Ip
#示例
ssh-copy-id -i /root/.ssh/id_rsa.pub root@139.199.196.67

这个过程需要输入ServerB对应用户密码。下图添加成功。

1547277535362

ok,搞定。

3、测试

ServerA执行:

ssh root@ServerB_Ip date
#示例
ssh root@139.199.196.67 date

得到:
Sat Jan 12 15:22:17 CST 2019

成功!

方法二:手工拷贝密钥

其实手工拷贝跟方法一的使用命令拷贝差不多,就是操作上原始一点;

1、生成公私钥:同方法一的步骤1;

2、手动将步骤1中ServerA生成的/root/.ssh/id_rsa.pub拷贝到ServerB的/root/.ssh目录下并重命名authorized_keys

3、测试:同方法一的步骤3;

转载于:https://www.cnblogs.com/xiaxiaolu/p/10264013.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值