VPS常用SSH使用和管理方式
操作1: 如何使用 SSH Key 文件访问远程服务器VPS?
在Ubuntu 22.04中,添加SSH密钥以便访问通常涉及以下步骤:
生成SSH密钥对(如果还没有的话):
- 打开一个终端窗口。
- 输入
ssh-keygen
并按 Enter。 - 按照指示完成,包括设置一个密码(可选),这会生成两个文件:私钥(默认为
~/.ssh/id_rsa
)和公钥(默认为~/.ssh/id_rsa.pub
)。
将公钥添加到远程服务器:
- 使用
ssh-copy-id
命令将公钥添加到您希望无密码访问的远程服务器。命令格式如下:ssh-copy-id 用户名@服务器地址
。例如:ssh-copy-id user@example.com
。 - 按提示输入远程服务器的密码。
- 使用
验证SSH密钥登录:
- 试着通过SSH登录到远程服务器,例如:
ssh 用户名@服务器地址
。 - 如果您为SSH密钥设置了密码,此时系统可能会要求您输入它。
- 试着通过SSH登录到远程服务器,例如:
配置文件(可选步骤):
- 如果您希望为特定的连接自定义SSH的行为,可以编辑
~/.ssh/config
文件来添加特定的服务器配置。
- 如果您希望为特定的连接自定义SSH的行为,可以编辑
操作2: 如果需要使用其他名称命名 SSH-Key 的文件名,操作如下:
在 macOS 中生成一对新的 SSH 密钥非常简单,而且可以为新的密钥对指定任何你喜欢的名称。默认情况下,SSH 密钥对通常被命名为 id_rsa
(私钥)和 id_rsa.pub
(公钥),但你可以使用不同的文件名。以下是生成新密钥对的步骤:
打开终端:首先,在你的 Macbook 上打开终端(Terminal)应用。
运行 ssh-keygen 命令:使用
ssh-keygen
命令来生成新的密钥对。你可以指定一个文件名来替代默认的id_rsa
。例如,如果你想创建一个名为my_new_ssh_key
的密钥对,你可以运行以下命令:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/my_new_ssh_key
这里 -t rsa
指定了密钥类型为 RSA,-b 4096
指定了密钥长度为 4096 位(更安全),而 -f ~/.ssh/my_new_ssh_key
指定了密钥的保存位置和文件名。
设置密码(可选):系统会提示你输入一个密码(passphrase),这是可选的。密码可以增加密钥的安全性,但如果你选择不设置密码,你可以直接按回车键跳过这一步。
检查生成的密钥:运行完成后,你的新密钥对将保存在
~/.ssh
目录下。你可以使用ls ~/.ssh
命令查看。使用新的密钥:你现在可以使用这个新的密钥对来进行 SSH 连接。记得把公钥(
my_new_ssh_key.pub
)添加到你需要连接的服务器的~/.ssh/authorized_keys
文件中。
确保在需要的时候指定正确的密钥文件,例如在使用 ssh
命令连接服务器时,可以使用 -i
选项指定私钥文件:
ssh -i ~/.ssh/my_new_ssh_key username@hostname
操作3: 如果生成SSH 密钥的时候设置了密码,在连接SSH的时候需要输入这个密码吗?
是的,如果你在生成 SSH 密钥的时候设置了密码(也称为 passphrase),那么在每次使用这个密钥进行 SSH 连接时,系统都会要求你输入这个密码。
当你执行 SSH 命令连接到服务器时,系统会提示你输入密码来解锁私钥。这个密码不是你的用户帐户密码,而是你在生成密钥时设置的那个密码。这一步骤增加了一个额外的安全层,因为即使有人获取了你的私钥文件,没有密码他们也无法使用它。
如果你觉得每次都输入密码太麻烦,你可以使用 SSH 代理来避免重复输入。SSH 代理可以在你的会话期间安全地存储解锁的私钥,这样你只需要在会话开始时输入一次密码。在 macOS 上,ssh-agent
通常会自动启动并管理你的密钥。要将密钥添加到 ssh-agent
并在系统重启后自动加载,你可以执行以下命令:
- 启动
ssh-agent
(如果尚未运行):
eval "$(ssh-agent -s)"
- 将 SSH 私钥添加到
ssh-agent
:
ssh-add -K ~/.ssh/my_new_ssh_key
这样,只要 ssh-agent
运行且包含你的私钥,你就不需要每次连接时都输入密码。
操作4: 如果生成了非默认名称的 SSH Key 文件,那么如何将公钥 Pub Key 文件推送至服务器?
如果您已经有了一个名为 my_new_ssh_key
的公钥文件,并且想把它添加到远程服务器上,以便于您可以进行无密码的SSH访问,则您可以按照如下步骤操作:
首先确保将公钥内容复制到远程服务器的
~/.ssh/authorized_keys
文件中。如果远程服务器没有这个目录或文件,您需要登录到远程服务器去创建它们。将公钥复制到远程服务器可以使用下面的命令,这需要您手动做。您需要替换
username
和remote_host
为您实际的用户名和服务器地址:
cat ~/.ssh/my_new_ssh_key | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
上述命令执行后,系统可能会要求您输入远程服务器用户的密码。这样做是为了将您的公钥内容追加到 authorized_keys
文件中。
- 如果成功,之后您应当能够使用私钥
my_new_ssh_key
(与您的公钥相对应的私钥)来进行无密码的SSH登录。
如要使用您的私钥文件进行登录,可以使用如下命令,同样的,确保替换 username
和 remote_host
:
ssh -i ~/.ssh/my_new_ssh_key username@remote_host
确保私钥 no_pwd_key
的文件权限是正确的,通常应该是仅当前用户可读(也就是说,权限应该是 600),可以使用下述命令来设置权限:
chmod 600 ~/.ssh/my_new_ssh_key