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,不仅避免了密码爆破风险,还能提供更安全的远程访问方式。

阅读剩余
THE END