- 使用 sshpass 工具来做名密码输入
- 使用 alias 别名来做成命令语句、
Linux命令之非交互SSH密码验证-sshpass
ssh登陆不能在命令行中指定密码。sshpass的出现,解决了这一问题。sshpass用于非交互SSH的密码验证,一般用在sh脚本中,无须再次输入密码。
它允许你用 -p 参数指定明文密码,然后直接登录远程服务器,它支持密码从命令行、文件、环境变量中读取。
其默认没有安装,需要手动安装,方法如下:
sshpass下载地址:http://sourceforge.net/projects/sshpass/ 下载为一个 tar.gz的压缩包。
$ tar -zxvf sshpass-1.05.tar.gz
$ cd sshpass-1.05
$ ./configure --prefix=/opt/sshpass #指定安装目录
$ make
$ make install
$ cp /opt/sshpass/bin/sshpass /usr/bin/
经过以上步骤,sshpass安装完成,输入命令 sshpass 如出现如下提示即安装成功:
#从命令行方式传递密码 -p指定密码
$ sshpass -p '123456' ssh user_name@host_ip
$ sshpass -p '123456' scp root@host_ip:/home/test/t ./tmp/
alias命令
alias命令用来设置指令的别名。我们可以使用该命令可以将一些较长的命令进行简化。使用alias时,用户必须使用单引号''
将原来的命令引起来,防止特殊字符导致错误。
alias命令的作用只局限于该次登入的操作。若要每次登入都能够使用这些命令别名,则可将相应的alias命令存放到bash的初始化文件/etc/bashrc
中。
语法
alias(选项)(参数)
选项
-p:打印已经设置的命令别名。
参数
命令别名设置:定义命令别名,格式为“命令别名=‘实际命令’”。
实例
alias 的基本使用方法为:
alias 新的命令='原命令 -选项/参数'
例如:alias l=‘ls -lsh'
将重新定义ls命令,现在只需输入l就可以列目录了。直接输入 alias 命令会列出当前系统中所有已经定义的命令别名。
要删除一个别名,可以使用 unalias 命令,如 unalias l。
查看系统已经设置的别名:
alias -p
alias cp='cp -i'
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'