在工作中,有很多时候,我们需要使用自动化脚本远程安装软件或者执行程序。此时必须要实现免密码登录才好做相应操作。
博主今天就详细的分享Linux之间的ssh免密码登录配置过程,帮助小白们理解并掌握SSH。首先,在开始之前,我们来了解下SSH。
一、什么是SSH?
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
二、SSH基本用法
ssh命令用于远程登录上Linux主机。
常用格式:ssh [-l login_name] [-p port] [user@]hostname
更详细参数配置的可以用ssh -h查看
不指定用户,默认使用root账户登录
ssh 192.168.29.129
指定用户:
ssh -l root 192.168.29.129
ssh root@192.168.29.129
如果修改过ssh登录端口的可以:
ssh -p 32555 192.168.29.129
ssh -l root -p 32555 192.168.29.129
ssh -p 32555 root@192.168.29.129
登录效果图

ssh的配置文件:/etc/ssh/sshd_config
可以改ssh登录端口和禁止root登录。改端口可以防止被端口扫描。
编辑配置文件:vi /etc/ssh/sshd_config
找到#Port 22,去掉注释,修改成一个五位的端口:
Port 32555
找到#PermitRootLogin yes,去掉注释,修改为:
PermitRootLogin no
重启sshd服务:
service sshd restart
成功重启: Stopping sshd: [ OK ]
Starting sshd: [ OK ]
查看linux中的ssh端口开启状态
netstat -anp |grep 22 netstat -anp |grep ssh lsof -i :22
三、免密登录

1.生成秘钥对:ssh-keygen

2.拷贝公钥到B服务器:ssh-copy-id root@hostB

3.使用命令登录:ssh houtB

由此,A服务器到B服务器的SSH免密码登录配置完成,B登录A的免密码配置同上操作。
来源:oschina
链接:https://my.oschina.net/u/2371923/blog/1841137