OpenSSH(Open Source Secure Shell)是SSH(Secure Shell)协议的免费开源实现,是一个开源的安全协议套件,用于提供远程登录(如Telnet)和加密文件传输(SFTP、SCP)服务。
主要组件与功能
- SSH协议:SSH提供了一种安全的方式来在计算机之间进行命令行通信,特别是在互联网上。它使用公钥加密技术保证了数据的安全性和身份验证。
- 客户端软件:OpenSSH包括客户端软件,可以连接到支持SSH协议的服务器。用户可以通过SSH客户端远程登录到远程服务器或主机,以执行命令和管理远程系统。
- 服务器端软件:服务器端软件可以在本地主机或远程服务器上运行并监听连接请求。服务器端通常安装在Linux服务器上,也可以在其他操作系统上运行。
配置步骤
1.在Ubuntu系统中安装openssh-server。
sudo apt update
sudo apt install openssh-server
2.安装完成后,开启服务并查看服务状态。
sudo service ssh start
sudo service ssh status
3.查找IP地址
ip addr
4.PowerShell以管理员身份运行
确保/etc/ssh/sshd_config文件中配置为:PermitRootLogin no PasswordAuthentication yes
ssh username@server_ip #替换成真实的 username 和服务器 ip 地址
(yes/no/[fingerprint])? ----选yes
输密码
到这里,已经可以通过密码的方式进行连接。若想不用每次都输密码,我们可以利用 RSA 密钥 登录。
5.在客户端,Windows Power Shell 中生成密钥。
ssh-keygen -t rsa -b 2048 -C "your_email@example.com"
-t rsa
:指定密钥类型为 RSA-b 2048
:密钥长度为 2048 位-C "your_email@example.com"
:为密钥添加注释
系统会提示保存路径,默认是 ~/.ssh/id_rsa
,按 Enter 即可。
如果需要设置密码短语,可输入,首次使用建议直接按 Enter 跳过。
6.查找并复制公钥
本地Windows查找,一般在C盘用户的.ssh(id_rsa.pub),也可以使用代码查找:
type $HOME\.ssh\id_rsa.pub # 查看公钥内容
7.上传公钥到服务器
mkdir -p ~/.ssh
nano ~/.ssh/authorized_keys
把公钥复制进去并保存。
8.PowerShell以管理员身份运行
ssh username@server_ip #替换成真实的 username 和服务器 ip 地址
9.进一步简化连接
找到C盘的.ssh文件夹下面的config文档,输入
Host myPC
HostName [ip address]
IdentityFile "C:\Users\...\.ssh\id_rsa"
Port 22
User [username]
PreferredAuthentications publickey
配置完成后保存退出,此时你已经可以在命令行中使用 myPC
指代 WSL 服务器了。你可以直接在 Power Shell 中执行:
ssh myPC
禁用密码登录
sudo nano /etc/ssh/sshd_config
PasswordAuthentication no
sudo service ssh restart
设置安全权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys