我使用ssh
通过本地端口转发访问远程服务器。但这是我第一次使用ssh
,我不太熟悉它。我使用此命令
ssh -N -i ~/.ssh/id_rsa -L local_port:destination_server_ip:remote_port remote_username@ssh_server_hostname
然后系统会要求我输入密码以成功验证我的身份。
这可能是一个显而易见的问题,但是如何在远程服务器(destination_server_ip)上打开终端会话?
我见过类似的教程这它解释了本地端口转发,但似乎没有说明如何在远程服务器上打开终端。
答案1
问题中显示的命令不适用于只需在远程系统上打开一个 shell。这用于通过加密隧道隧道传输应用程序访问,例如 Web 浏览器访问远程内联网服务器或 SQL 客户端访问 SQL 服务器。
localhost:local_port
这些应用程序将通过访问而不是无法到达的远程地址来到达远程服务器。
如果您只想在远程系统上打开一个终端 shell,那么您的命令可以更简单:
ssh -i ~/.ssh/id_rsa remote_username@ssh_server_hostname
输入(密钥的id_rsa
)密码...这样你就有了自己的shell。
由于您不知道 remote_user 的密码,因此您需要使用密钥认证,因为您有密钥。该选项-i ~/.ssh/id_rsa
提供密钥。
为了减少日常处理的复杂性,您可以在文件中配置此主机访问权限:~/.ssh/config
# Your Project Server:
Host REMOTE_SERVER
Port REMOTE_PORT
User REMOTE_USERNAME
IdentityFile ~/.ssh/id_rsa
AddKeysToAgent yes
配置文件的注释:
- 关键的是
Host ...
。 - 此行之后的所有条目都将分配给那里定义的服务器,直到下一
host
行定义下一个服务器(或文件结束)。 - 全局设置必须写在第一
host
行之前
该行AddKeysToAgent yes
允许 ssh-agent 存储密钥的密码,这样下次您就不必再次输入密码。
配置完成后 ~/.ssh/config
,打开远程 shell 的命令变得更短:
ssh REMOTE_SERVER
这是您期望的答案吗?
还有什么遗漏吗?