CentOS
1. 安装 openssh-server 服务
# 查看是否安装 opensshd-serveryum list installed | grep openssh-server
# 安装 opensshd-serveryum install openssh-server
2. 修改配置
# 打开配置文件vi /etc/ssh/sshd_config
- 开启公钥授权
- PubkeyAuthentication yes
- 开启授权目录
- AuthorizedKeysFile .ssh/authorized_keys
- 开启密码授权
- PasswordAuthentication yes
# 重启 sshdsystemctl restart sshd
3. 开机自动启动
# 开启开机自动启动systemctl enable sshd.service
4. 授权公钥登录
- 关闭密码授权
- PasswordAuthentication no
- 用户主机生成秘钥
# 三次回车(选择默认)ssh-keygen -t rsa
- 用户主机公钥复制到远程主机
# username 远程用户名# hostname 远程主机名ssh-copy-id -i ~/.ssh/id_rsa.pub username@hostname
- 远程主机的目录下、会自动生成一个授权文件、里面包含了所有授权用户主机的公钥
~/.ssh/authorized_keys
Windows
1. 关闭防火墙
# 查看是否开启防火墙netsh advfirewall show allprofile state
# 关闭防火墙netsh advfirewall set allprofiles state off
2. 安装 OpenSSH.Server
# 查看是否安装过 OpenSSH.ServerGet-WindowsCapability -Online -Name OpenSSH*
# 查看可安装的 OpenSSH 服务列表Get-WindowsCapability -Online | ? Name -like OpenSSH*
# 安装 OpenSSH.ServerAdd-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
3. 修改配置并启动
# 打开配置文件C:\ProgramData\ssh\sshd_config
- 开启公钥授权
- PubkeyAuthentication yes
- 开启授权目录
- AuthorizedKeysFile .ssh/authorized_keys
- 开启密码授权
- PasswordAuthentication yes
# 重启 sshd 服务Restart-Service sshd
4. 开机自动启动
# 开启自动启动Set-Service -Name sshd -StartupType 'Automatic'
5. 授权公钥登录
- 关闭密码授权
- PasswordAuthentication no
- 注释掉授权组
- #Match Group administrators
- # AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
- 用户主机生成秘钥
# 三次回车(选择默认)ssh-keygen -t rsa
- 用户主机公钥复制到远程主机
# 警告:只允许首次没有其他用户公钥的情况使用、否则将覆盖原有公钥# username 远程用户名# hostname 远程主机名scp %USERPROFILE%\.ssh\id_rsa.pub username@hostname:%USERPROFILE%\.ssh\authorized_keys
- 远程主机的目录下、会自动生成一个授权文件、里面包含了所有授权用户主机的公钥
%USERPROFILE%\.ssh\authorized_keys
6. 卸载
# 卸载 OpenSSH 服务Remove-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0