前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux 远程ssh免密登录

linux 远程ssh免密登录

作者头像
乔达摩@嘿
发布2020-09-10 21:01:10
4.2K0
发布2020-09-10 21:01:10
举报
文章被收录于专栏:嘿dotNet嘿dotNet

写在前面

先说说需求:

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

原理

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

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

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

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

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

代码语言:javascript
复制
ssh-keygen

公私钥 默认生成路径/root/.ssh(这里的root是用户名,如果你是其他用户替换即可) 如图:这里会让你输入密钥的保护密码,我这里是一路回车(也就是不设置密钥密码)

1547276774262
1547276774262

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

1547276894955
1547276894955

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

代码语言:javascript
复制
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
1547277535362

ok,搞定。

3、测试

ServerA执行:

代码语言:javascript
复制
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;

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-01-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 写在前面
  • 方法一:使用ssh-copy-id 命令拷贝密钥:
    • 1、ServerA执行ssh-keygen生成公私钥;
      • 2、使用ssh-copy-id将公钥复制到ServerB中
        • 3、测试
        • 方法二:手工拷贝密钥
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档