如何设置 ssh 连接的用户定义命令

如何设置 ssh 连接的用户定义命令

我目前使用终端通过以下方式连接集群:

>ssh -p port user_name@address
>user_name@addresspassword's:
>password 

我想创建一个用户定义的命令,就像connect一个包含这些基本元素的配置文件

# These contents can be edited
port: xxxx
user_name: xxxx
address: xxxx
password: xxxx

在这些设置之后,我想通过在终端中输入“connect”来连接集群。

答案1

先安装sshpass

apt-get/yum install sshpass -y

将其添加到您的~/.bashrc

connect()
(
    . ~/.ssh/variables_for_ssh.sh
    SSHPASS=$password sshpass -e ssh -p "$port" "$username@$address"
)

创建一个名为variables_for_ssh.shin 的文件~/.ssh/(或其他只有您可读的目录),其内容如下:

password='yourpassword'
port=portnumber
username='your username'
address='your address'

然后更改权限,这样只有你和root可以读写该文件。

chmod 600 ~/.ssh/variables_for_ssh.sh

当您更改 的内容时,只需在运行之前variables_for_ssh.sh获取您的.~/.bashrcconnect

答案2

编辑~/.ssh/config:

Host Address
User user_name
Hostname address
Port xxx

现在您可以连接

 $ ssh Address 

如果你想进一步缩短它,添加一个别名

~/.bashrc:

 alias connect="ssh Address" 

您应该设置一个 ssh 公钥并将其放置在远程服务器中以允许无密码安全登录。

以明文形式存储密码或使用别名缩短像 sshpass 这样的命令(这又会以明文形式存储密码)并不是一个好主意,请参阅这个答案

相关内容