打开终端到本地转发端口

打开终端到本地转发端口

我使用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

这是您期望的答案吗?
还有什么遗漏吗?

相关内容