小兔网

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