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-argv0
是 ssh-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
我想知道如何创建自己的 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-argv0
是ssh-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