📜  ssh 保存密码 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:47:41.760000             🧑  作者: Mango

SSH 保存密码

SSH是一种远程连接协议,它是在控制台上运行的基于文本的命令,可以将本地计算机连接到远程服务器。连接服务器时,往往需要输入用户名和密码,如果经常连接同一台服务器,每次都输入用户名和密码显然是很麻烦的。下面介绍几种方法可以让我们在连接服务器时不必输入密码。

方法一:使用ssh-agent

ssh-agent是一种SSH密钥管理器,可以使我们免密码连接到远程服务器。

# 启动ssh-agent
$ eval "$(ssh-agent -s)"
# 添加ssh密钥
$ ssh-add ~/.ssh/id_rsa

以上命令可以将ssh私钥添加到ssh-agent中,使我们连接服务器时不必再输入密码。如果想要永久保存ssh私钥,可以将以上命令添加到系统启动脚本中。

方法二:使用sshpass

sshpass是一种自动化连接SSH的工具,可以通过命令行输入密码,从而免输入密码连接到远程服务器。

# 安装sshpass
$ sudo apt-get install sshpass
# 连接远程服务器
$ sshpass -p <password> ssh <username>@<host>

以上命令中,<password>代表密码,<username>代表用户名,<host>代表远程服务器的IP地址或域名。

使用sshpass虽然可以免输入密码,但是会将密码明文存储在脚本中,存在一定安全风险,因此不建议在生产环境中使用。

方法三:使用SSH密钥文件

使用SSH密钥文件可以免输入密码连接到远程服务器。SSH密钥文件包括SSH私钥和SSH公钥两部分。

# 生成SSH密钥文件
$ ssh-keygen -t rsa
# 将SSH公钥拷贝到远程服务器
$ ssh-copy-id -i ~/.ssh/id_rsa.pub <username>@<host>
# 免密码连接远程服务器
$ ssh <username>@<host>

以上命令中,ssh-keygen生成SSH密钥文件,ssh-copy-id拷贝SSH公钥到远程服务器中,ssh命令免密码连接远程服务器。

总结

以上是免输入密码连接SSH的三种方法,第一种方法使用ssh-agent免密码连接SSH,第二种方法使用sshpass命令免输入密码连接SSH,第三种方法使用SSH密钥文件免输入密码连接SSH。其中,第一种方法是最安全的,推荐在生产环境中使用。