sshpass命令找不到(ssh命令没反应)

http://www.itjxue.com  2023-01-29 01:11  来源:未知  点击次数: 

sshpass连接时出现问题怎么解决?

解决方法是:

在/root/.ssh/known_hosts 文件里面将原来的公钥信息删除即可。

具体原因分析,SSH 报“Host key verification failed.”。

客户端无法正常通过 SSH 连接服务器时,先通过如下方式进行 telnet 端口测试,判断是否是中间网络异常所致。

一般来说,出现该错误有这么几种可能:

1.ssh/known_hosts 里面记录的目标主机 key 值不正确。这是最普遍的情况,只要删除对应的主机记录就能恢复正常。

2. .ssh 目录或者 .ssh/known_hosts 对当前用户的权限设置不正确。这种情况比较少,一般正确设置读写权限以后也能恢复正常。

3. /dev/tty 对 other 用户没有放开读写权限。这种情况极为罕见。出现的现象是,只有 root 用户能够使用 ssh client,而所有其他的普通用户都会出现错误。

ssh登陆不能在命令行中指定密码,sshpass 的出现,解决了这一问题,用于非交互的ssh 密码验证 它支持密码从命令行,文件,环境变量中读取。

SSH是用一种协议,它可以让一台计算机用一种比较安全的方式登录远程主机。

使用SSH连接,自然需要相应的客户端和服务端软件,采用OpenSSH。

ssh命令的基本用方法就是 ssh username@ipaddress 。username就是远程主机的用户,ipaddress是远程主机的IP地址,你也可以把它换成域名。可以只输入ssh来获得它的帮助信息,查看更多细节。

请记住username@ipaddress 这种格式,因为它在其他命令行工具(如 git 和 scp )中屡见不鲜,这时就会知道该工具是用SSH来访问远程主机的。

CentOS下使用sshpass输入密码时特殊字符的处理

sshpass的密码输入时默认不能使用特殊字符。当遇到有特殊字符的ssh密码时, 需要对密码做特殊处理:加单引号:例如:密码为:12365@3$#@!

使用sshpass命令时这样使用即可避免,在密码前后加上单引号:'12365@3$#@!'

命令行如下:sshpass -p '12365@3$#@!' ssh root@10.0.1.45 即可解决!

redhat 中 怎么配置ssh的密码

有两种方法,可以用证书实现无密码登录,或者sshpass命令可以指定ssh登陆密码。

1、派出间谍

Step 1:执行ssh-keygen -t rsa,会在~/.ssh下生成两个文件,id_isa和id_isa.pub

On one of the local LINUX (not SGI) machines, generate an id_rsa and id_rsa.pub pair as follows (this machine will subsequently be referred to as your home machine):

ssh-keygen will create the files ~/.ssh/id_rsa and ~/.ssh/id_rsa.pub.

Step 2: Copy the contents of ~/.ssh/id_rsa.pub to ~/.ssh/authorized_keys on any and all machines to which you want to be able to ssh to without being prompted for a password

可以用下面的命令完成此步骤:

cat id_rsa.pub |ssh root@172.16.1.5 ‘cat - ~/.ssh/authorized_keys’

2、用sshpass程序

安装:

tar zxf sshpass-1.05.tar.gz

cd sshpass-1.05

./configure;make;make install

which sshpass

/usr/local/bin/sshpass

实例:

sshpass -p “passwd” ssh root@ip

使用sshpass和ssh实现无密码自动远程登录

linux对linux进行登录可以使用ssh工具,但是在使用ssh的时候经常需要输入密码,因此需要安装sshpass工具,实现自动登录。

使用命令登录远程服务器:

为了解决每次登录都需要输入密码,ip地址等信息,可以自定义一个shell命令。首先打开bash配置文件:

在最后添加一下代码:

推出文件之后,重载bashrc文件:

在终端输入sshww即可远程登录服务器。

一台电脑安装了linux系统和windows系统,时间会不同步。

【shell】CentOS7.x上sshpass的安装使用

OpenSSH 自带的 ssh 客户端程序(也就是 ssh命令)默认不允许你以非交互的方式传递密码。

很多时候我们在确定安全的情况下,对ssh的交互登录"深恶痛绝",所以就需要进行免密登录。

ssh登陆不能在命令行中指定密码,sshpass的出现,解决了这一问题。

sshpass用于非交互SSH的密码验证,一般用在sh脚本中,无须再次输入密码(本机known_hosts文件中有的主机才能生效)。它允许你用 -p 参数指定明文密码,然后直接登录远程服务器,它支持密码从命令行、文件、环境变量中读取。

ssh命令, 没有指定密码的参数. 以至于在脚本中使用ssh命令的时候, 必须手动输入密码, 才能继续执行. 这样使得脚本的自动化执行变得很差, 尤其当ssh对应的机器数很多的时候, 会令人抓狂.使用非交互式样有两种方式: 一种借助expect脚本, 一种借助sshpass来实现。

# wget?

# tar? zxf sshpass-1.06.tar.gz

# cd sshpass-1.06

# ./configure? --prefix=/usr/local/

# make make install

# yum -y install sshpass

# yum info?sshpass

注:如果用rpm的方式安装ansible,sshpass是作为依赖安装的。

# sshpass -h

# sshpass -p "123456" ssh? ?-o 'StrictHostKeyChecking=no' ? ?root@192.168.1.100

# sshpass -p "123456" ssh? -o 'StrictHostKeyChecking=no' ? ?root@192.168.1.100? ?-v

注:第一次登陆务必加上? ?-o 'StrictHostKeyChecking=no' ? 选项,或者保险起见,每次加上

non-interactive ssh password auth

sshpass 用法举例

Linux ssh命令详解

sshpass的使用方法

用expect做服务器的批量互信

如何自动输入密码ssh连接到其他机器

主要的解决方法有三种:

1. 生成ssh公钥,建立和对方机器的信任关系;

2. 使用expect脚本;

3. 使用sshpass。

这里介绍一下sshpass相关内容

下载并安装sshpass):

# tar zxvf sshpass-xxxx.tar.gz

# cd sshpass-xxxx

# ./configure

# make make install

基本用法:sshpass -p [密码] ssh [user]@[host]

免去第一次登录机器时的确认提示(Are you sure you want to continue connecting (yes/no)):

sshpass -p [密码] ssh [user]@[host] -o StrictHostKeyChecking=no

后面也可以跟上其他ssh命令,如scp等

例1,公司的一个环境,大部分机器的login密码是"1root",少部分是"123qwe",新建一个hssh.sh文件,按如下修改,copy到/usr/bin/目录下。

[cpp] view plain copy

#!/bin/sh

#_main_

temp_file=/tmp/hssh.1

ip=192.168.$1

case "$1" in

"204.188"|"207.31"|"205.199") password="123qwe";;

*) password="1root"

esac

sshpass -p $password ssh root@$ip -o StrictHostKeyChecking=no 2$temp_file

if [ $? != 0 ];then

#for some reason,machine had reinstall, we need to delete that IP address in known_hosts file before ssh it.

grep -q "REMOTE HOST IDENTIFICATION HAS CHANGED" $temp_file

if [ $? = 0 ];then

key_file=`grep "Offending key in" $temp_file | cut -d' ' -f 4 | cut -d ':' -f1 2/dev/null`

cat $key_file | grep -v "$ip" $temp_file

sudo cp -v $temp_file $key_file

sshpass -p $password ssh root@$ip -o StrictHostKeyChecking=no 2$temp_file

fi

fi

那么我们每次只要输入hssh XXX.XXX 等就可以ssh到对应机器上了

(责任编辑:IT教学网)

更多

推荐Painter教程文章