如何直接通过服务器ssh和scp?


2

我通过以下方式连接到server2:

home$ ssh server1
server1$ ssh server2
server2$

我有时还需要以这种方式来scp,这需要一些额外的时间:

home$ ssh server1
server1$ scp server2:file .
server1$ exit
home$ scp server1:file .

有没有办法在家中一个命令中执行此操作?我正在使用公共密钥身份验证,但是如果它也可以与密码一起使用,那就太好了。

Answers:


1

我建议使用MobaXterm:您只需要

  • 从这里下载:http : //mobaxterm.mobatek.net/download-home-edition.html
  • 点击“新会话”,然后选择“ ssh”
  • 在“远程主机名”字段中指定“ server2”计算机名或IP地址
  • 在“ SSH反弹(通过网关ssh服务器连接)”字段中指定您的“ server1”计算机名或IP地址

这将直接向您的“ server2”计算机启动一个新的SSH命令。在窗口左侧,您还可以访问图形SFTP文件传输工具,该工具也将直接连接到“ server2”。


这似乎是一个不错的程序。但是,我并不总是在原始服务器上运行X服务器。
蒂姆(Tim)

是的,但是不需要X服务器:您可以根据需要在MobaXterm设置中选择禁用它。
Didier 2012年

好的,从名称开始,我只是假设它不是命令行程序。我会检查出来的。
蒂姆(Tim)

1

您可以通过以下方式使用SSH隧道:

ssh -f server1 -L 8888:server2:22 -N

这将在本地计算机上的端口8888上打开一个套接字(假设没有其他进程正在使用该端口),该套接字通过server1将连接隧道连接到server2(假设SSH在端口22上运行)。在-N-f标志告诉SSH到餐桌的背景(你必须杀死进程,如果你想停止隧道)。

现在您只需执行以下操作即可从server2捕获文件

scp -P 8888 localhost:file

0

home$ server1 "ssh server2"

但是当涉及更多服务器时,转义命令字符串会很麻烦。


0

将SOCKS5与动态隧道配合使用

创建到第一台计算机的动态ssh隧道。然后,使用第一个连接作为SOCKS5代理到达远程网络上的第二个主机。

通过腻子很容易设置。您可以根据需要多次重复使用代理。有些程序直接支持SOCKS5。像腻子和ssh。

在Linux下,代理链可用于代理本机不支持SOCKS5的程序。在Windows下,我喜欢Proxycap。它与RDP配合良好。

要使用Putty进行设置:

在第一个主机设置页面中,在隧道下:

  • 创建一个动态隧道
  • 将端口设置为9050。
  • 将目标零件保留为空白,因为它是动态的。
  • 保存设置。(从会话页面完成。)

然后,在第二个主机的配置中,在代理下:

  • 选择SOCK55。
  • 将代理主机名更改为127.0.0.1
  • 将端口设置为9050
  • 然后像平常一样设置剩余的会话
  • 保存设置

连接到第二台主机。您首先必须连接并登录到第一台主机。然后,您应该能够通过代理ssh连接连接到第二台主机,

您也可以从命令行使用ssh_config条目执行此操作:http : //www.undeadly.org/cgi? action=article&sid=20070925181947

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.