在尝试实施LinuxServerHacks中的一些hack时,我不得不转到ssh联机帮助页,在那里我发现了一些很酷的技巧。
- 为了使基于密钥的身份验证(即无密码)工作,
$HOME/.ssh目录必须是0700模式,并且所有文件其中必须是模式0600。一旦设置正确,基于密钥的身份验证就可以完美地工作。 - 您可以在
$HOME/.ssh目录中有一个名为config的文件,它指定使用SSH的用户特定设置,以及一些主机特定设置:
Compressionyes开启压缩ForwardX11yes默认开启X11转发ForwardAgentyes默认开启ssh-agent转发- Host-based设置从一个Host关键字到下一个,所以放置他们在文件的末尾。按照以下顺序进行:
```apacheconf Host nickname HostName actual.host.name User username_on_that_host Port PortToUse ``` This means, for instance, that I can ssh back and forth between home using the same key-based authentication and the same ssh-to script ([more below](#ssh-to)) I use for work servers -- because I don't have to specify the port or the username.
我之前提到过一个名为ssh-to的脚本。这也是来自服务器黑客书的一个巧妙的小黑客。基本上,您的路径中某处有以下脚本:
#!/bin/bash ssh -C `basename $0` $*
然后,在你路径的其他地方,你做了一堆ln-s/path/to/ssh-to/path/to/$HOSTNAME,其中$HOSTNAME是您定期连接到的主机的名称;这是在您的$HOME/.ssh/config文件中指定主机昵称的地方可以派上用场。然后,要通过ssh连接到任何此类服务器,您只需在命令行键入$HOSTNAME,就可以了!
