centos免密(centos远程桌面软件)
这篇文章给大家聊聊关于centos免密,以及centos远程桌面软件对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。
【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做服务器的批量互信
Windows下设置SSH免密
笔者以前在linu之间配置SSH秘钥来完成免密,为了方便Windows Terminal使用,ssh又无法直接在命令行指定密码,于是就需要配置一下Windows到linux的免密,公钥的分发需要手动scp传递,新建公钥文件时需要注意权限问题。
1、Windows生成密钥对
在cmd运行ssh-keygen-t rsa,在目录下生成一个.ssh文件夹,其中包含私钥文件 id_rsa和公钥文件 id_rsa.pub。
2、将公钥复制到远程主机
在Linux中有ssh-copy-id命令将公钥复制到远程主机,但是Windows下可没有哦,那么就需要手动分发。下面使用scp命令来远程传递文件,也可以使用winscp可视化操作。
scp id_rsa.pub pi@192.168.31.103:/home/pi/.ssh
然后进入到远程主机将id_rsa.pub重命名为authorized_keys。
mv id_rsa.pub authorized_keys
为了保存公钥也可以cat id_rsa.pub>> authorized_keys,或cp id_rsa.pub authorized_keys。
3、配置完成后测试正常。
上面的是Windows登陆树莓派免密配置,但是笔者配置Windows登陆centos7虚拟机时无法完成公钥认证,导致免密失败。
查看调试信息:ssh-v mycentos@192.168.31.120,感觉是无法认证公钥。
关闭centos7的/etc/ssh/sshd_config配置文件中秘密认证登陆后:Permission denied(publickey,gssapi-keyex,gssapi-with-mic),应该是配置文件的错误。密钥在树莓派上可以正常识别认证的。但是笔者测试修改了一个几个配置条目都不行,都不知道那里有问题,带以后再工作中解决吧,一时半会也搞不定。
2021年3月9日:
笔者在红帽redhag生产系统上查看/etc/ssh/sshd_config配置文件,发现配置文件是保持默认的,都没有修改,但是在末尾添加了一个AllowUsers,笔者将其修改后加入到centos系统中但是还是不行。
AllowUsers*@192.168.*.*
最后找到了一个权限问题,即使authorized_keys文件权限问题,因为是笔者在.ssh目录下新建的文件的默认权限是-rw-rw-r--(664),对于authorized_keys来说权限过大,修改为644后就可以了。
测试结果如下。
还有可以免去输入用户的麻烦,这就需要解决解决本地登陆用户与远程登陆用户不一致的问题。在.ssh文件夹下新建config文件,并写入ip和用户名信息。接下来就可以使用ssh mycentos来免密免用户登陆了。
...密钥连接Linux防止远程22端口密码爆破(以centos7为例)
使用ssh密钥连接Linux防止远程22端口密码爆破(以centos7为例)
解决远程ssh爆破问题,封禁IP是方法之一,更安全的策略是采用ssh密钥登录。下面是两种实现方法。
首先,利用Shell脚本定时监控ip登录失败次数,一旦达到预设阈值,将其加入黑名单。示例代码如下:
编写一个定时执行的脚本,定期检查登录失败记录,对于频繁尝试的ip进行封禁。
接着,进行密钥登录的设置:
在Linux端,确保安装了ssh服务,可使用命令`yum install openssh-server`和`yum-y install sshpass`进行安装。
在Windows端,需要安装ssh免密登录的工具,如Putty或Xshell等。
在Windows上生成私钥,使用命令`ssh-keygen`,设置文件名、密码(可选),最后使用`scp`命令将公钥文件`id_rsa.pub`复制到Linux的`/root/.ssh/authorized_keys`目录中。
在Linux侧,需确保`/root/.ssh`目录权限为700,`authorized_keys`文件权限为600,以保护密钥安全。
在`/etc/ssh/sshd_config`文件中,设置允许密钥登录,通常默认已启用,无需手动修改。
重启sshd服务,完成密钥登录配置。
关闭ssh密码登录,避免被破解,可通过宝塔控制面板或修改配置文件`/etc/ssh/sshd_config`,将`PasswordAuthentication yes`更改为`PasswordAuthentication no`,然后重启sshd服务。
重启后,尝试使用非密钥登录的账户,应无法登录。使用已生成私钥的账户进行登录,能够顺利完成。
使用ssh密钥连接Linux,不仅避免了密码爆破风险,还能提供更安全的远程访问方式。