Answers:
我管理或者看到人们管理SSH数据有两种方式:
好'ole,命令行,纯文本,ssh_config文件。
创建一个名为config
inside 的文件~/.ssh
。您可以通过将全局参数放在任何主机声明之上来指定它们。当我开始使用MacPorts时,我必须明确定义一个默认的SSH私钥,以便在连接时自动使用,所以作为我放置的文件的第一行;
IdentityFile ~/.ssh/id_rsa
为主机定义自定义规则(甚至可以使用*作为通配符)时,它看起来像这样:
Host prod-*
User jason
Port 2222
LocalForward 5901 localhost:5901
IdentityFile ~/.ssh/work-id_rsa
然后,当我运行时ssh prod-script
,所有其余规则将自动应用。
许多不想以如此繁琐的方式手动管理所有东西的人很快找到了JellyfiSSH。(Mac App Store Link。当它停止免费下载时,同样的人也变得非常恼火。)
JellyfiSSH为您提供了几乎可以在命令行或ssh_config文件中指定的所有内容的GUI访问权限。JellyfiSSH只是一个用于组织目的的配置存储应用程序,因为它根据您设置的选项生成命令,并在单击连接时打开一个新的终端窗口,其中包含在命令行上定义的所有选项。JellyfiSSH 不是它自己的终端应用程序。
man ssh_config
终端将提供当前系统安装中可用的OpenSSH SSH客户端配置文件信息。在评论时,这比上面的开发者链接更新。
您可以创建文件,Example.command
然后使其可执行:chmod 755 Example.command
并双击该文件以打开连接:
#!/bin/sh
exec /usr/bin/ssh username@example.com
exit 0
如果您只想使用别名(易于记忆的单词)从命令行连接,可以在〜/ .ssh / config中设置它们
Host foo
HostName some.really.long.hostname.here.com
Port 22
User bigfun
然后您可以使用主机进行连接 foo
ssh foo
或者您可以在shell配置文件中创建函数(〜/ .bashrc或〜/ .zshenv):
s1 () {
ssh -v username@example.com
}
然后你可以example.com
通过s1
在命令行输入来连接,它将使用1级详细程度。
最后,您可以使用ssh自动完成,但其语法将取决于您选择的shell。快速谷歌的'ssh自动完成YourShellHere'应该会出现一些例子。
最重要的是,IMO,是设置ssh使用密码。自从Leopard以来,OS X内置了很好的Keychain集成。
ssh-keygen -t dsa -f ~/.ssh/id_dsa -C "you@exampledomain.com"
cat ~/.ssh/id_dsa.pub | ssh you@host.domain 'cat – >> ~/.ssh/authorized_keys'
(来源:http://www.paosborne.com/blog/?p = 369。)
然后当你ssh到一台新机器时,OS X钥匙串会提示你输入ssh密码
有关更全面的说明,另请参见http://www.dribin.org/dave/blog/archives/2007/11/28/ssh_agent_leopard/。文章较旧,但Lion的工作方式相同。
如果您登录多台计算机,则可以~/.ssh/config
通过Dropbox 同步文件。我保持我的~/Dropbox/etc/ssh/config.txt
,然后我做:
cd ~/.ssh
ln -s ../Dropbox/etc/ssh/config.txt config
我用〜/ .zshenv做同样的事情:
cd
ln -s Dropbox/etc/zshenv.sh .zshenv
事实上,我将所有shell脚本放在〜/ Dropbox / bin /中,并将其添加到我的$ PATH中,只是为了覆盖我的所有基础。