平常使用ssh登陆远程服务器时,都需要使用输入密码,希望可以实现通过密钥登陆而免除输入密码,从而可以为以后实现批量自动部署主机做好准备。

环境如下:
IP地址 操作系统
服务器端 10.0.0.10 CentOS 6.5 x86
客户端 10.0.0.61 CentOS 6.5 x86

1.客户端生成密钥对

[root@rsync10 ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
99:af:26:b0:23:e2:04:9f:48:02:77:8a:d5:6d:b3:c7 root@rsync10
The key's randomart image is:
+--[ RSA 2048]----+
| |
| . . |
|. o o + |
|.+ o . + o |
|+.. . E |
|+o .. . . |
|..o o . |
|o . o . .. |
|.o . . o. |
+-----------------+

查看生成的密钥对
[root@rsync10 ~]# ls .ssh/
id_rsa id_rsa.pub
id_rsa为私钥,这个一般需要保密;id_rsa.pub为公钥,这个可以公开。

2.上传公钥到服务器端

使用scp命令操作:
[root@rsync10 ~]# scp .ssh/id_rsa.pub root@10.0.0.61:/root/
The authenticity of host '10.0.0.61 (10.0.0.61)' can't be established.
RSA key fingerprint is 83:c2:2d:85:79:f7:20:36:34:1d:53:1c:7a:b0:d9:bc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.0.0.61' (RSA) to the list of known hosts.
root@10.0.0.61's password:
id_rsa.pub 100% 394 0.4KB/s 00:00

3.服务器端操作
把从客户端传来的公钥添加到.ssh/authorized_keys中:

[root@mb01 ~]# mkdir .ssh
[root@mb01 ~]# cat id_rsa.pub >> .ssh/authorized_keys
[root@mb01 ~]# chmod 600 .ssh/authorized_keys

4.修改ssh配置文件/etc/ssh/sshd_config,找到下面一行:

PubkeyAuthentication no
修改为:

PubkeyAuthentication yes

5.测试

[root@rsync10 ~]# ssh root@10.0.0.61
Last login: Wed May 2 13:39:22 2018 from 10.0.0.10
[root@mb01 ~]#

6.注意事项

  1. 在服务器端需要把selinux关闭,否则最后无法使用密钥进行远程登陆;
  2. 客户端使用scp命令时,在服务器端也需要安装ssh客户端,否则无法把公钥上传到服务器端,另外也可以使用ssh-copy-id root@10.0.0.61来代替scp操作(这样在服务器端也不需要执行创建.ssh目录等这些操作,即相当于该命令可以一步帮我们完成密钥的上传与配置工作);

转载于:https://blog.51cto.com/chenmingqi/2110678

Linux上实现ssh免密码登陆远程服务器相关推荐

  1. 菜鸟Linux系列:[4]SSH免密码登陆远程服务器

    背景:搭建Hadoop环境需要设置无密码登陆,所谓无密码登陆其实是指通过证书认证的方式登陆,使用一种被称为"公私钥"认证的方式来进行ssh登录. 在linux系统中,ssh是远程登 ...

  2. ssh免密码登陆远程服务器(3种方式)

    第一种:ssh密码登录步骤,server.sh添加 #!/usr/bin/expect spawn ssh Username@ServerIP expect "*password:" ...

  3. linux ssh免密登陆远程服务器

    10.170.1.18服务器免密登录到10.170.1.16服务器 首先登入一台linux服务器(10.170.1.18),此台做为母机(即登入其他linux系统用这台做为入口):执行一行命令生成ke ...

  4. mac下ssh免密登陆远程服务器(linux)

    打开本地iterm2(终端)输入ssh-keygen,一直回车(当然可以根据提示自定义密钥存储位置.密码),生成公私钥 默认生成位置为~/.ssh/.id_rsa为私钥 id_rsa.pub为公钥 设 ...

  5. ssh免密登陆远程linux服务器

    在工作的时候需要经常连接各个远程服务器,正常情况下每次连接远端服务器时都需要输入登陆账户的密码,每次输入都比较麻烦,希望走一个免登陆的效果. 1.生成公私钥 ssh-keygen -t rsa -C ...

  6. Linux运维:Shell脚本实现ssh免密登录远程服务器

    LInux系统日常运维过程中,经常需要在本地运行脚本执行对远程主机的命令,正常情况下,ssh登录远程服务器时会提示输入密码,这会影响到脚本的自动执行(因为shell脚本中没有自动填充密码的命令).有三 ...

  7. CentOs 下SSH 免密码登陆

    CentOs下的SSH免密码登陆: 原理: 1.在ServerA的/root/.ssh目录下 ssh-keygen -t rsa 生成一对儿秘钥 2.将serverA的公钥拷贝到serverB下/ro ...

  8. ssh免密连接远程服务器

    ssh免密连接远程服务器 借助ssky-keygen和ssh-copy-id工具,通过4个简单的步骤实现无需输入密码登录远程Linux主机 1 生成密钥 通过内置的工具生成RSA算法加密的密钥 ssh ...

  9. Day One,配置ssh免密码登陆

    在配置过程中遇到一些问题,参考了下面的博文: http://blog.sina.com.cn/s/blog_76fbd24d01017je7.html http://jingyan.baidu.com ...

最新文章

  1. 保护云端数据的5个技巧
  2. 好消息:Sci-Hub解封了!可以看2021新文献了!附可用网址
  3. ubuntu下移植QT基本流程
  4. 《DL/T 1476-2015 电力安全工器具预防性试验规程》中的样品名称及试验项目
  5. 计算机网页div怎么划分,《网页布局与实现(DIV+CSS)》
  6. encodeURIComponent编码2次
  7. linux下载文件一直超时,Linux下connect超时处理(总结)
  8. Eclipse 内置浏览器
  9. cx_oracle写日志信息_看日志痛苦——可能是你方法不对
  10. 赠书 | 读懂 x86 架构 CPU 虚拟化,看这文就够了
  11. 网格成就Web 2.0存储时代的路易XIV?
  12. 如何用python控制设备实现自动_带你用 Python 实现自动化群控设备
  13. mysql 事物gljbie,提升mysql性能几大参数丶章怀柔
  14. linux安装audit软件,linux audit工具
  15. kali教程--破解wifi密码
  16. 购买的域名设置域名解析
  17. Sisyphus.js 自动保存草稿 用法
  18. matlab做误差棒图,科学网—Matlab误差棒、图例、颜色配比,很有用的代码 - 周锋的博文...
  19. 达梦数据库key文件更换
  20. 给猫起名字的几种姿势

热门文章

  1. MYSQL体系结构-来自期刊
  2. 物联网时代营销怎么做?
  3. css控制非固定文本自动换行
  4. swift3.0友盟分享
  5. Swift 3.0 预告:将 Objc 库转换成更符合 Swift 语法风格的形式
  6. 从头到尾使用Geth的说明-3-geth参数说明和环境配置
  7. Python设置环境变量,改变GnomeConnectionManager的语言
  8. TypeKit ,use online fonts
  9. 泛型实体类List绑定到repeater
  10. uva 10183 How many Fibs?