欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

sshpass:优秀的免交互 SSH 登录工具 - 如何在 Linux 中使用 sshpass

最编程 2024-07-18 15:56:32
...

sshpass 与 ssh 一起使用,使用下面的命令可以查看 sshpass 的使用选项的完整描述:


  1. $ sshpass -h 

下面为显示的 sshpass 帮助内容:


  1. Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters 
  2. -f filename   Take password to use from file 
  3. -d number     Use number as file descriptor for getting password 
  4. -p password   Provide password as argument (security unwise) 
  5. -e            Password is passed as env-var "SSHPASS" 
  6. With no parameters - password will be taken from stdin 
  7. -h            Show help (this screen) 
  8. -V            Print version information 
  9. At most one of -f, -d, -p or -e should be used 

正如我之前提到的,sshpass 在用于脚本时才更可靠及更有用,请看下面的示例命令。

使用用户名和密码登录到远程 Linux ssh 服务器(10.42.0.1),并检查文件系统磁盘使用情况,如图所示。


  1. $ sshpass -p 'my_pass_here' ssh aaronkilik@10.42.0.1 'df -h'  

重要提示:此处,在命令行中提供了密码,这是不安全的,不建议使用此选项。

sshpass – 使用 SSH 远程登录 Linux

但是,为了防止在屏幕上显示密码,可以使用 -e 标志,并将密码作为 SSHPASS 环境变量的值输入,如下所示:


  1. $ export SSHPASS='my_pass_here' 
  2. echoSSHPASS 
  3. $ sshpass -e ssh aaronkilik@10.42.0.1 'df -h'   

sshpass – 在终端中隐藏密码

注意:在上面的示例中,SSHPASS 环境变量仅用于临时目的,并将在重新启动后删除。

要永久设置 SSHPASS 环境变量,打开 /etc/profile 文件,并在文件开头输入 export 语句:


  1. export SSHPASS='my_pass_here' 

保存文件并退出,接着运行下面的命令使更改生效:


  1. $ source /etc/profile 

另外,也可以使用 -f 标志,并把密码放在一个文件中。 这样,您可以从文件中读取密码,如下所示:


  1. $ sshpass -f password_filename ssh aaronkilik@10.42.0.1 'df -h'  

sshpass – 在登录时提供密码文件

你也可以使用 sshpass 通过 scp 传输文件或者 rsync 备份/同步文件,如下所示:


  1. ------- Transfer Files Using SCP -------  
  2. $ scp -r /var/www/html/example.com --rsh="sshpass -p 'my_pass_here' ssh -l aaronkilik" 10.42.0.1:/var/www/html 
  3. ------- Backup or Sync Files Using Rsync ------- 
  4. $ rsync --rsh="sshpass -p 'my_pass_here' ssh -l aaronkilik" 10.42.0.1:/data/backup/ /backup/ 

更多的用法,建议阅读 sshpass 的 man 页面,输入:


  1. $ man sshpass 

在本文中,我们解释了 sshpass 是一个非交互式密码验证的简单工具。 虽然这个工具可能是有帮助的,但还是强烈建议使用更安全的 ssh 公钥认证机制。

请在下面的评论栏写下任何问题或评论,以便可以进一步讨论。

作者简介:Aaron Kili 是一位 Linux 和 F.O.S.S 爱好者,未来的 Linux 系统管理员,web 开发人员, 还是 TecMint 原创作者,热爱电脑工作,并乐于分享知识。