本地配置ssh检查本地是否配置过ssh本地配置sshWindows系统Mac系统远程主机(Linux)配置ssh检查远程主机是否配置过ssh在远程主机(Linux)上配置ssh在终端通过ssh连接远程服务器免费获取PyCharm Professional在PyCharm Professional中通过ssh连接远程服务器
本地配置ssh
检查本地是否配置过ssh
Windows系统
- 在终端PowerShell中输入
ssh -V
,显示 SSH 客户端的版本信息。如果你看到类似于OpenSSH_for_Windows_8.1p1
的输出,说明 SSH 客户端已经配置好。如果你看到'ssh' 不是内部或外部命令,也不是可运行的程序或批处理文件
,则说明 SSH 客户端可能没有安装或配置。
- 前往文件夹
C:\Users\your_username\.ssh
(注意将your_username
替换为你的用户名),查看是否有config
、id_rsa
、id_rsa.pub
等文件。如果这些文件存在,则说明 SSH 配置已经存在。
Mac系统
通常 macOS 默认已安装SSH。
- 在终端中输入
ssh -V
,显示SSH客户端的版本信息。如果你看到类似于OpenSSH_8.1p1
的输出,说明SSH客户端已经配置好。如果你看到command not found
或类似的消息,则说明SSH客户端可能没有安装或配置。
- 在终端中输入
ls -la ~/.ssh/
,会列出~/.ssh/
目录中的所有文件。如果你看到config
、id_rsa
、id_rsa.pub
等文件,说明SSH配置已经存在。
本地配置ssh
Windows系统
- 安装 OpenSSH 客户端(如果未安装):
- 打开“设置”应用程序。
- 转到“应用” > “可选功能”。
- 如果未列出“OpenSSH 客户端”,点击“添加功能”,搜索“OpenSSH 客户端”并安装。
- 打开终端PowerShell,输入
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
生成密钥对,替换"your_email@example.com"
为你的电子邮件地址。按提示操作:指定文件名:按Enter
键接受默认文件名(/Users/your_username/.ssh/id_rsa
);设置密码:按提示设置一个密码(可选)。
- 在终端中输入
cat ~/.ssh/id_rsa.pub
查看公钥内容。
Mac系统
- 在终端中输入
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
生成密钥对,替换"your_email@example.com"
为你的电子邮件地址。按提示操作:指定文件名:按Enter
键接受默认文件名(/Users/your_username/.ssh/id_rsa
);设置密码:按提示设置一个密码(可选)。
- 在终端中输入
cat ~/.ssh/id_rsa.pub
查看公钥内容。
远程主机(Linux)配置ssh
检查远程主机是否配置过ssh
在终端中输入以下命令:如果以下检查都通过,说明 SSH 已正确配置。
- 检查 SSH 服务状态
systemctl status ssh
如果输出显示
active (running)
,则 SSH 服务正在运行。- 检查 SSH 配置文件
cat /etc/ssh/sshd_config
如果文件存在且内容配置正确,则说明 SSH 已配置。
- 查看 SSH 端口
grep Port /etc/ssh/sshd_config
确保 SSH 使用默认端口(通常为 22)。
- 使用 netstat 或 ss 命令
sudo netstat -tuln | grep :22
或者
sudo ss -tuln | grep :22
检查 SSH 服务是否监听正确端口。
在远程主机(Linux)上配置ssh
若检查发现远程主机(Linux)上未配置过ssh,可按照以下步骤完成配置。
- 安装 OpenSSH Server
在终端中输入以下命令安装 SSH:
sudo apt update
(此命令非必须)sudo apt install openssh-server
这一步可能因为网络连接问题而失败,需要多试几次。
- 启动并启用 SSH 服务
启动 SSH 服务:
sudo systemctl start ssh
设置开机自启动:
sudo systemctl enable ssh
- 检查 SSH 服务状态
确认 SSH 服务正在运行:
sudo systemctl status ssh
- 配置 SSH
- 确保端口设置为
Port 22
或其他你希望使用的端口。 - 可以根据需要启用或禁用密码登录、设置允许的用户等。
编辑配置文件
/etc/ssh/sshd_config
以满足你的需求:sudo nano /etc/ssh/sshd_config
- 重启 SSH 服务
修改配置后,重启服务以应用更改:
sudo systemctl restart ssh
- 配置防火墙
如果使用防火墙,需要允许 SSH 流量:
sudo ufw allow ssh
或指定端口:
sudo ufw allow 22/tcp
在终端通过ssh连接远程服务器
- 将本地的公钥添加到远程服务器中
- 在本地终端输入
ssh-copy-id username@host
,将公钥复制到远程服务器。 - 如果无法使用
ssh-copy-id
,可以在本地终端输入cat ~/.ssh/id_rsa.pub
显示公钥内容,将其手动复制到远程服务器中。 - 检查远程服务器中文件
authorized_keys
是否存在: 在远程服务器终端输入ls -l ~/.ssh/authorized_keys
,如果文件存在,会显示文件信息;如果文件不存在,会提示找不到文件。 - 打开或创建
authorized_keys
文件:mkdir -p ~/.ssh nano ~/.ssh/authorized_keys
- 粘贴公钥:
- 保存并退出:
将本地机器上
id_rsa.pub
文件中的内容复制。在 远程服务器nano
编辑器中右键粘贴。按
Ctrl + O
保存文件。按 Enter
确认。按 Ctrl + X
退出编辑器。- 确保远程服务器的 SSH 配置文件
/etc/ssh/sshd_config
允许公钥认证: - 在远程服务器终端中输入
sudo nano /etc/ssh/sshd_config
,打开配置文件。 确保PubkeyAuthentication yes
这一行存在并未被注释(没有 # 号)。 - 如果做了修改,按
Ctrl + O
保存文件,然后按Enter
确认,按Ctrl + X
退出编辑器。 - 应用更改后,通过命令
sudo systemctl restart ssh
重启 SSH 服务。
- 在本地终端中通过
ssh username@hostname
命令连接到服务器的终端。这样,你就可以通过公钥私钥进行安全连接,而不必输入远程服务器的密码。 whoami
,可得username;hostname
,可得hostname;hostname -I
,可得远程服务器的 IP 地址。
在远程服务器终端输入:
关于ssh与ip地址的问题:如果ip地址改变了,我可以再探索一下。
那这样不还是使用ip地址连接了嘛?我想通过密钥对连接,不通过ip地址,因为ip地址往往是动态分配的,重新启动机器后,ip地址就改变了,不方便下次连接
ChatGPT
抱歉,我理解错了。你可以通过以下步骤使用主机名进行连接,即使 IP 地址是动态的:
使用动态 DNS 服务
- 注册动态 DNS 服务
使用服务提供商(如 No-IP 或 DynDNS)注册一个主机名。
- 安装动态 DNS 客户端
在服务器上安装并配置动态 DNS 客户端,以便自动更新主机名的 IP 地址。
使用 SSH 配置文件
- 编辑本地 SSH 配置文件
在本地机器上编辑
~/.ssh/config
文件:nano ~/.ssh/config
- 添加主机配置
添加如下配置,将
<dynamic-hostname>
替换为你的动态主机名:Host myserver HostName <dynamic-hostname> User username IdentityFile ~/.ssh/id_rsa
这样你可以使用
myserver
来连接。- 保存并退出
- 按
Ctrl + O
保存文件。 - 按
Enter
确认。 - 按
Ctrl + X
退出编辑器。
现在,你可以通过以下命令连接:
ssh myserver
这样就可以使用主机名而不依赖固定 IP 地址。
免费获取PyCharm Professional
对于中国大陆的学生,通过edu邮箱、GitHub这两种方式认证会失败,因此建议通过“官方文件”方式认证:
我们目前无法授予您免费许可证。可能的原因:
- 我们无法确定拥有此域名下电子邮件地址的人是否为学生。
- 此电子邮件域名属于被适用的欧盟、联合国或美国法令或某些出口管制限制所单独针对的组织或者在这些地区注册的组织。
如果您是这所学校的学生,并且认为您没有受到任何这些法令,请使用官方证件申请。
在PyCharm Professional中通过ssh连接远程服务器
PyCharm只有Professional版本可以通过ssh远程开发,Community Edition是不支持的。所以需要本地安装PyCharm Professional,而远程服务器不需要提前安装任何软件。
根据以下教程进行配置:
其中有一步骤:“downloading the IDE backend on the remote host”,通常应在几分钟内完成。如果超过 10 分钟仍未完成,说明网络连接有问题,多试几次。