一、SSH客户端安装
客户端安装SSH工具
Windows客户端
安装Putty、XShell、SecureCRT
Linux客户端
yum install openssh-clients
macOS客户端
默认已经安装了SSH客户端
二、SSH服务器端安装
服务端安装SSH服务
安装SSH:
yum install openssh-server
启动SSH
systemctl start(或restart) sshd
3.设置开机运行SSH
systemctl enable sshd
4.查看SSH状态
systemctl status sshd
三、客户端通过SSH连接服务器
# 连接远程服务器
ssh root@172.20.10.2
四、用config文件配置SSH
config文件可以配置SSH,方便批量管理多个SSH连接
全局config文件
查看config文件的使用手册
# SSH服务端config文件的使用手册
man sshd_config
# SSH客户端config文件的使用手册
man ssh_config
1. 客户端config文件的常用配置参数
客户端config参数 | 作用 |
---|---|
Host | 别名 |
HostName | 远程主机名(或IP地址) |
Port | 连接到远程主机的端口 |
User | 用户名 |
配置如下 ~/.ssh/config
Host guoguo
HostName 172.20.10.2
Port 22
User root
设置完成后我们就可以简化登录了,如下:
ssh guoguo
创建局部config文件
# 一般会把~/.ssh/config的权限修改为600
chmod 600 ~/.ssh/config
2. 服务端全局config文件的常用配置参数
服务端config参数 | 作用 | 默认 |
---|---|---|
Port | sshd服务端口号 | 22 |
PermitRootLogin | 是否允许root用户身份登录 | 允许 |
PasswordAuthentication | 是否允许密码验证登录 | 允许 |
PubkeyAuthentication | 是否允许公钥验证登录 | 可以 |
PermitEmptyPasswords | 是否允许空密码登录 | 默认不可以 |
# 如果用户的家目录下没有.ssh目录,使用如下命令生成.ssh目录
ssh localhost
总结:
- SSH的config文件可以帮助我们配置SSH
- config文件分为全局config文件和局部config文件
- 全局的config文件会对所有的用户生效,谨慎使用
- 修改全局的config文件后,重启sshd服务使之立即生效
五、SSH免密码登录
5.1 验证方法
- 基于口令
基于密钥
客户机生成密钥对(公钥和私钥),把公钥上传到服务器
并与服务器的公钥进行比较
这种验证登录的方法更为安全,也被称为“公钥验证登录
5.2 公钥验证登录步骤
- 在客户机中成成密钥对(公私密钥对)
使用
ssh-keygen
生成密钥对。(默认使用RSA非对称加密算法)ssh-keygen # 等价于 ssh-keygen -t rsa
执行完后会在~./ssh目录下生成id_rsa和id_rsa.pub文件将公钥上传到服务器 (默认会将公钥上传至服务器)
ssh-copy-id root@172.20.10.2 # 等价于 ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.20.10.2
这下我们就可以使用如下命令直接登录服务器,不想需要密码验证。
ssh root@172.20.10.2
5.3. 公钥验证登录
ssh-copy-id
会把客户机的公钥追加到服务器的一个文件authorized_keys
中,
路径:~/.ssh/authorized_keys
5.4 设置SSH免密码后仍想使用密码登录
# 使用密码登录,禁用密钥登录
ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no user@172.20.10.2
总结
- 为了免去每次用SSH协议连接远程机器都要输入用户名和密码的麻烦
- 我们可以创建一个用于验证身份的密钥对
- 公钥需要上传并存储到远程机器上
- 私钥存放在我们自己的电脑中
- 之后我们的SSH连接就不再需要输入密码了
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。