利用ssh进行免密远程的配置

利用ssh进行免密远程的配置

windows端

安装

方法一

windows+I打开设置, 进入系统,选择可选功能。 输入框中搜索openssh, 即可看到两个选项, 分别为OpenSSH Client与OpenSSH Server。 由于此电脑为被远程端, 则笔者选择了OpenSSH Server.

img

方法二

  1. 使用Windows + R快捷键打开「运行」对话框,输入powershell,然后按Ctrl + Shift + Enter以管理员权限打开 PowerShell 窗口。
  2. 通过命令Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'检查OpenSSH安装状态, 如果状态为Installed则为已安装, 否则未安装。
  3. 安装服务端命令为Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0, 客户端为Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

启动与配置

启动

  1. 使用Windows + R快捷键打开「运行」对话框,输入powershell,然后按Ctrl + Shift + Enter以管理员权限打开 PowerShell 窗口。
  2. 通过命令Set-Service -Name sshd -StartupType 'Automatic'设置sshd服务开机启动
  3. 通过命令Start-Service sshd启动sshd服务
  4. 查看当前sshd服务监听端口netstat -an | findstr /i ":22"

配置

  1. 通常配置在C:\ProgramData\ssh目录下的sshd_config文件中, 通过文本编辑器打开
  2. 如果想通过公私钥免密登录, 则需取消PubkeyAuthentication yes注释, 并修改PasswordAuthenticationno
  3. 可以在配置文件中看到AuthorizedKeysFile=.ssh/authorized_keys, 表明客户端受认证的公钥存储在这个文件, 如果不存在则创建。 所以打开目录C:\Users\用户名\.ssh, 创建authorized_keys, 把客户端同目录下的id_rsa.pub文件内容拷贝到创建authorized_keys文件中。
  4. 重启服务:Restart-Service sshd
  5. 笔者配置到这以为就可以免密登录了,客户端登录,结果报错Permission denied(publickey,password)
  6. 第3步骤缺少一个配置就是一定要注释掉关键两行:Match Group administratorsAuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
  7. 修改后重启服务再登录就ok了

大概配置如下:

#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

#HostKey __PROGRAMDATA__/ssh/ssh_host_rsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_dsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_ecdsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_ed25519_key

# Ciphers and keying
#RekeyLimit default none

# Logging
#SyslogFacility AUTH
#LogLevel INFO

# Authentication:

#LoginGraceTime 2m
#PermitRootLogin prohibit-password
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

PubkeyAuthentication yes

# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile	.ssh/authorized_keys

#AuthorizedPrincipalsFile none

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
#PermitEmptyPasswords no

#Match Group administrators
#       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

linux端

安装

sudo apt install openssh-server

启动与配置

启动

systemctl 方式

# 启动
sudo systemctl start sshd.service

# 重启
sudo systemctl start sshd.service

# 停止
sudo systemctl stop sshd.service

# 状态
sudo systemctl status sshd.service

service方式

# 启动
sudo service sshd start

# 重启
sudo service sshd restart

# 停止
sudo service sshd stop

# 状态
sudo service sshd status

配置

  1. 配置文件通常位于/etc/ssh/sshd_config
  2. 免密配置基本与windows相同
  3. 创建了authorized_keys文件后需要修改权限, 否则连接报错。 修改权限命令chmod 600 ~/.ssh/authorized_keys

客户端配置

  1. 通过ssh-keygen -t rsa生成公私钥, 通常在用户目录下的.ssh目录下生成公私钥文件id_rsaid_rsa.pub
  2. 将公钥内容复制到服务器同级目录的authorized_keys文件中
posted @ 2024-08-05 15:09  汗牛充栋  阅读(18)  评论(0编辑  收藏  举报