Bash ssh 到特定服务器的脚本

Bash script to ssh to particular server

我想知道如何创建自己的 bash 脚本来通过 ssh 连接到服务器。我知道它很懒惰,但我希望不必输入:

ssh username@server

并且只使用我自己的两个字母命令(即没有文件扩展名,并且可以从任何目录执行)。

如有任何帮助,我们将不胜感激。如果它有助于指定文件路径等,我正在使用 Mac OS X.

您可以在文件 ~/.ssh/config:

中设置 ssh 的配置
Host dev
    HostName mydom.example.com
    User myname

然后,输入

$> ssh dev

大功告成。此外,您可以将 public 密钥添加到文件 ~/.ssh/authorized_keys 这样您就不会在每次想要通过 ssh 连接时都提示您输入密码。

使用 alias.

例如:alias sv='ssh user@hostname',那么您只需输入sv
请务必在您的个人资料中复制别名,否则它们将在您的会话结束时消失。

您可以像这样创建一个别名:

alias ss="ssh username@server" 并将其写入您的 .bash_profile。 “.bash_profile”是一个隐藏文件,位于您的主目录中。如果 .bash_profile 尚不存在(通过在您的主目录中键入 ls -a 进行检查),您可以自己创建它。

每次打开新的shell时,都会读取并执行bash_profile文件。

您可以使用 ssh-argv0 来避免键入 ssh

为此,您需要创建一个 link 到 ssh-argv0,其中包含您要连接的主机的名称,如果需要,还包括用户。然后你可以执行 link,ssh 将你连接到 link 名称的主机。

例子

设置 link:

ln -s /usr/bin/ssh-argv0 ~/bin/my-server
  • /usr/bin/ssh-argv0ssh-argv0 在我的系统上的路径,你的可能不同,检查 which ssh-argv0
  • 我把它放在 ~/bin/ 中以便能够从任何目录执行它(在 OS X 中你可能需要手动添加 ~/bin/ 到你在 [=23 上的路径=])
  • my-server是我的服务器的名称,如果需要设置用户,那就是user@my-server

执行:

my-server

更多

您还可以将其与 结合使用来配置您的服务器连接,这样您就可以使用更短的名称来调用它,并避免包含用户,即使它与本地系统上的用户不同。

Host serv
    HostName my-server
    User my-user
    Port 22

然后将名称 serv 的 link 设置为 ssh-argv0,并使用

连接到它
serv