在Linux(Ubuntu版本)下如何配置SSH远程访问
总体流程
1.设置防火墙,开启22号端口
2.生成公钥和私钥,设置密码
3.将公钥激活,配置给linux
一. 设置防火墙,开启22号端口:
登录到您的云服务器:使用SSH或者其他远程登录工具登录到您的云服务器。这通常需要您知道服务器的IP地址、用户名和密码。
确认是否已经开启了SSH服务:大多数Linux服务器默认会安装并启动SSH服务。您可以通过运行以下命令来确认SSH服务是否正在运行:
sudo systemctl status ssh # 检查ssh是否运行
如果服务正在运行,您会看到相关的活动信息;如果没有运行,您可以通过以下命令启动SSH服务:
sudo systemctl start ssh # 启动SSH服务
允许22号端口通过防火墙:如果您的服务器上启用了防火墙,您需要允许来自外部网络的SSH连接。大多数Linux发行版使用的是iptables或者firewalld。下面是两种常用的方法:
如果您使用的是iptables,您可以执行以下命令来允许SSH流量通过22号端口:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允许22号端口通过防火墙
如果您使用的是firewalld,则可以执行以下命令:
sudo firewall-cmd --zone=public --add-port=22/tcp --permanent
sudo firewall-cmd --reload
重启SSH服务(如果需要):在某些情况下,修改防火墙规则后可能需要重启SSH服务,以便使更改生效。您可以运行以下命令来重启SSH服务:
sudo systemctl restart ssh # 重启ssh服务
测试连接:现在您已经允许了22号端口通过防火墙,并且SSH服务正在运行,您应该能够通过SSH客户端连接到您的云服务器。您可以使用类似于以下的命令进行连接:
ssh username@your_server_ip #用客户端测试ssh是否连接成功
其中 username 是您的服务器用户名,your_server_ip 是您的服务器IP地址。
请注意,开放22号端口会增加您服务器受到恶意攻击的风险,因此请务必采取必要的安全措施,如使用强密码、使用SSH密钥等。
二.生成公钥与私钥并设置私钥的密码
在Ubuntu系统中生成SSH密钥对非常简单。可以通过以下步骤完成:
- 打开终端。您可以使用Ctrl + Alt + T快捷键打开终端。
- 在终端中输入以下命令来生成SSH密钥对:
ssh-keygen -t rsa -b 4096 # 生成基于RSA算法生成一个4096位长度的SSH密钥对
这将使用RSA算法生成一个4096位长度的SSH密钥对。您也可以选择其他算法和不同的密钥长度,但RSA 4096是一个常用的安全选择。
- 您将被提示输入要保存密钥的文件位置。如果您想将其保存在默认位置(通常是
~/.ssh/id_rsa
),只需按Enter键即可。 - 接下来,您将被要求输入一个密码来保护您的私钥。这是可选的,但强烈建议设置一个密码以增强安全性。输入密码后,按Enter键。
- 现在,SSH密钥对已经生成。您可以在
~/.ssh/
目录下找到它们。默认情况下,这两个文件的名称为id_rsa
(私钥)和id_rsa.pub
(公钥)。
这样就完成了SSH密钥对的生成。私钥文件(id_rsa
)是您的私有密钥,需要妥善保管。公钥文件(id_rsa.pub
)可以共享给其他人或用于配置远程服务器的身份验证。
三.激活公钥,配置给linux服务器
在生成SSH密钥对后,您需要将公钥 (id_rsa.pub 文件的内容) 添加到远程服务器的 ~/.ssh/authorized_keys 文件中(使用cp命令将id_rsa.pub复制进~/.ssh/authorized_keys 文件中)。这样远程服务器就知道了您的公钥,可以使用它来验证您的身份。
以上内容基于chatgpt 3.5 创作整理