ssh 远程 报错 解决方案 centos 无法远程 另外附带-免密登录 免密码跳转堡垒机教程

1.ssh 远程 报错 解决方案 centos 无法远程 

SSH概念:

安全网络协议,开源实现、商业实现。 ​ 连接的客户端:putty、SecureCRT、XShell ​ 守护进程sshd,监听端口号:22 ​ 两个验证:主机验证:需要输入server的IP;用户验证:需要输入用户名密码 ​ 验证机制:密码验证机制、公钥认证机制 ​ 验证机制:基于口令的安全验证、基于秘钥的安全验证 ​

非对称加密: ​ 通过公钥、私钥进行加密、解密。不论是公钥加密或者私钥加密的数据,都能用对应的私钥或者公钥解密 ​ 公钥放服务器端、私钥放本机 ​ ​ SSH安全机制验证过程: ​ 1.创建一个密钥对,id_rsa(私钥)、id_rsa.pub(公钥),公钥放到服务器(目标机)上 ​ 2.将公钥的内容追加到目标机的授权文件中

关于ssh 修改如下检查自己centos里面的ssh配置文档:

如果有没开的按续需求开启,没找的某行把我这个中的某行直接粘进去。 后面注释很详细了

以centos7为例子

vim /etc/ssh/sshd_config

PermitRootLogin yes #允许root用户远程登录

PubkeyAuthentication yes #密钥登录

PasswordAuthentication yes #密码登录

UsePAM yes #用户登录验证体系,不要关,不然虚拟机主机和远程都登不上去

# AllowTcpForwarding yes #GatewayPorts no X11Forwarding yes #端口转发,不要关,不然会网卡,xshell偶尔连不上网

# X11DisplayOffset 10

# x11UseLocalhost yes #如果默认是no也不用修改,跟安装的服务有关

#PermitTTY yes

# PrintMotd yes

#交互式登录时打印

UseLogin no

# 禁止用户登录检查

UseDNS no

# 禁止用户DNs检查

如果你的默认是yes 然后,用xshell秒连接那么就不用改为no,如果往往在等待很久(超过五秒就是高延迟,三秒为延迟)后才能连接上..将#UseLogin yes改为UseLogin no或#UseDNS yes 改为UseDNS no

##x11UseLocalhost yes #仅本地用户主机转发,如果你需要在远程主机上显示GUI,你应该确保X11UseLocalhost设置为no。如果你不想让远程主机能够显示GUI,你应该将其设置为yes。

#警告: Red Hat Enterprise Linux 不支持 'UsePAM no',可能会导致多个问题 sshd_config配置文件错误导致ssh无法正常登录,要改为yes

#PrintMotd指定 sshd 是否在每一次交互式登录时打印 /etc/motd 文件的内容。默认值是"yes"。

#使用Xshell工具登录Linux时,常常会跳出如下界面 Connection established. To escape to local shell, press 'Ctrl+Alt+]'. 往往在等待很久后才能连接上..将#UseLogin yes改为UseLogin no(注意去掉前面的#)

出现To escape to local shell, press ‘Ctrl+Alt+J’.然后登了很久才登上 同理 修改UseDNS yes为UseDNS no,并去掉前面的#。

如果两秒内登录就不用改了,其余就。。

2.SSH无密码登录 的概念总结 免密登录

注意:再配免密登录前一定要确认

ssh  连接对面成功 

ping 对面IP可以ping通

先切换到管理员用户
 su - root
 [root@master ~]# vi /etc/ssh/sshd_config

 

PubkeyAuthentication yes # 密钥登录
     

不开 无法生成密钥对


SSH:安全网络协议,开源实现、商业实现。 ​ 连接的客户端:putty、SecureCRT、XShell ​ 守护进程sshd,监听端口号:22 ​ 两个验证:主机验证:需要输入server的IP;用户验证:需要输入用户名密码 ​ 验证机制:密码验证机制、公钥认证机制 ​ 验证机制:基于口令的安全验证、基于秘钥的安全验证 ​

非对称加密: ​ 通过公钥、私钥进行加密、解密。不论是公钥加密或者私钥加密的数据,都能用对应的私钥或者公钥解密 ​ 公钥放服务器端、私钥放本机 ​ ​ SSH安全机制验证过程: ​ 1.创建一个密钥对,id_rsa(私钥)、id_rsa.pub(公钥),公钥放到服务器(目标机)上 ​ 2.将公钥的内容追加到目标机的授权文件中

举例:

1 实验环境Hadoop集群
 

集群配置免密登录
(master到slaver1、slaver2;slaver1、slaver2到master)

前提:前期准备

前提:前期准备
3个节点: ​ master: ​ slaver1: ​ slaver2:

配置服务器的IP地址 查看机器的网卡名称。 ip address show。配置静态IP,三台均配

(2)设置服务器的主机名称) 设置主机名称 (以master为例子另外两台也要修改主机名)

 hostnamectl set-hostname master :修改以后永久生效
         hostname master1  :临时修改
     查看当前服务器的名称。
         hostname
(3)绑定主机名与IP地址 (以master为例子另外两台也要修改主机IP) 编辑本地名字解析文件hosts。

 vi /etc/hosts
在其中增加相应内容(下面的内容表示主机名master对应的IP地址为192.168.xxx.xxx):

 192.168.229.133  master
 192.168.229.134  slaver1
 192.168.229.135  slaver2
(4)查看SSH服务状态

 CentOS 7默认安装SSH服务,查看SSH的状态。
         systemctl status sshd
     关闭防火墙
     关闭命令:
         systemctl stop firewalld
 ​
 systemctl disable firewalld
   查看防火墙的状态
 systemctl status firewalld 
 关闭内核防火墙
 vim /etc/selinux/config
 ​
 SELINUX=disabled


集群配置免密登录
(master到slaver1、slaver2;slaver1、slaver2到master)

前提:有3个节点,每个节点主机名修改好、主机名和IP映射都配置好、已配置(主机名、IP地址和主机名映射、两个防火墙关闭)

配置本主机免密登录步骤:

1.大纲,总体思路

在本主机使用ssh-keygen -t rsa -P ''生成密钥对 ​ .将id_rsa.pub的内容追加本机的授权文件authorized_key中 ​

 配置master到slaver1、slaver2免密登录:
     1.在3个节点上都使用ssh-keygen -t rsa -P ''生成密钥对
     2.将master的公钥id_rsa.pub的内容追加slaver1的授权文件authorized_key中
 ​
 配置slaver1、slaver2到master免密登录


     1.在3个节点上都使用ssh-keygen -t rsa -P ''生成密钥对
 

 ssh-keygen -t rsa -P ''
  ssh-keygen -t rsa -P ''
  ssh-keygen -t rsa -P ''

 2.将slaver2的公钥id_rsa.pub的内容追加master的授权文件authorized_key中
 

cd ~/.ssh/ = cd /root/.ssh/
   ls
 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 
 ​
 #slave1
 [hadoop@slave1 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
 [hadoop@slave1 .ssh]$ ls ~/.ssh/
 #slave2
 [hadoop@slave2 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
 [hadoop@slave2 .ssh]$ ls ~/.ssh/
 chmod 600 ~/.ssh/authorized_keys
 chmod 600 ~/.ssh/authorized_keys    
 chmod 600 ~/.ssh/authorized_keys

 


 修改 SSH 配置文件"/etc/ssh/sshd_conchmod 600 ~/.ssh/authorized_keysfig"的下列内容

 

 #master
 [hadoop@master .ssh]$ su - root
 [root@master ~]# vi /etc/ssh/sshd_config
 PubkeyAuthentication yes
 #slave1
 [hadoop@slave1 .ssh]$ su - root
 [root@slave1 ~]# vi /etc/ssh/sshd_config
 PubkeyAuthentication yes
 #slave2
 [hadoop@slave2 .ssh]$ su - root
 [root@slave2 ~]# vi /etc/ssh/sshd_config
 PubkeyAuthentication yes


 设置完后需要重启 SSH 服务,才能使配置生效。
 

  systemctl restart sshd
 systemctl restart sshd
 systemctl restart sshd

 

拷贝并追加密钥  ,删除原生的元密钥

 master
 scp ~/.ssh/id_rsa.pub master@slave1:~/
  scp ~/.ssh/id_rsa.pub hadoop@slave2:~/
  cat ~/id_rsa.pub >>~/.ssh/authorized_keys
 slave1
 scp ~/.ssh/id_rsa.pub slave1@master:~/
 scp ~/.ssh/id_rsa.pub slave1@slave2:~/
  cat ~/id_rsa.pub >>~/.sh/authorized_keys
 slave2
 scp ~/.ssh/id_rsa.pub slave2@slave1:~/
 scp ~/.ssh/id_rsa.pub slave2@master:~/
  cat ~/id_rsa.pub >>~/.ssh/authorized_keys
 ​
 rm -f ~/id_rsa.pub
 rm -f ~/id_rsa.pub
 rm -f ~/id_rsa.pub

 

 看 查看 3个 节点 authorized_keys 文件
 cat ~/.ssh/authorized_keys

 

举例2:简单的方法:

思路:  公钥放服务器端、私钥放本机  

s1生成密钥对,追加给授权文件,把授权文件 拷贝到给s2 然后s1用putty或xshell 等可以通过s1 跳转登录s2了

拓展:

windows 上的putty 生成密钥对,追加给授权文件,把授权文件 拷贝到给s2 然后用putty或xshell 等就可以通过密钥 登录s2 了 原理差不多 

当然,这是在我们自己电脑上的实验环境

如果是公司,

则 :1.创建一个密钥对,id_rsa(私钥)、id_rsa.pub(公钥),公钥放到服务器(目标机)上 ​ 2.将公钥的内容追加到目标机的授权文件中 再通过自己电脑的私钥密钥登录

找到先切换到管理员或 sudo用户,开启允许使用密钥登录权限
 su - root
 [root@master ~]#  sudo vim /etc/ssh/sshd_config

 

 PubkeyAuthentication yes
     

cd /root/.ssh/ 


 1.( 我常用的这个)知道服务器密码的情况  

 # 免密码登录被控的主机(ip是被控的,之后输入yes,还会让你输入被控的密码)
 一定要修改hosts,三个均改,
 若四台则四台每个都改且 每个/etc/hosts 中添加四个IP主机名
 ​
 vim /etc/hosts  钉死DNS解析 

 

 192.168.98.145 root
 192.168.98.144 slave
 192.168.98.143 slave2

 

切换目录,在下面生成一个密钥对方便后期用

 cd /root/.ssh/
 ssh-keygen -t rsa
 ​

 

 #上面的命令后三次回车
 ​
  注意

cd /root/.ssh/

  ls    # 查看一下,在/root/.ssh/ 里面只是保留authorized_keys  id_rsa  id_rsa.pub两个文件其余删完否则会配失败

rm -rf known_hosts
 


 ​
 #然后把想要免密登录的服务器加进来(三台机器,主机免密登录另外两台)
 ssh-copy-id -i /root/.ssh/id_rsa.pub root@slave1
 ssh-copy-id -i /root/.ssh/id_rsa.pub root@slave12
 ​

# 配置完成,开始测试如下
 

[root@root opt]# ssh slave1
 Last login: Fri Jul 26 08:50:46 2024 from 192.168.98.1
 [root@slave1 ~]# exit
 登出
 Connection to slave1 closed.
 [root@root opt]# ssh slave2
 Last login: Fri Jul 26 08:50:47 2024 from 192.168.98.1
 [root@slave2 ~]# exit
 登出
 Connection to slave2 closed.
 [root@root opt]#
 ​

 2.不知道服务器密码的情况
 

 cd /root/.ssh/
 # 例子:pub能免密登录pri(就是pri是被控的主机)
 ssh-keygen -t rsa(两台都操作)
 #上面的命令后三次回车
  # pub中
  cd /root/.ssh/
 #(复制id_rsa.pub里的
 ​
 Pri中
 ​
 cd /root/.ssh/
 vim authorized_keys    # 这个文件是自己写的,内容是pub的id_rsa.pub里的
 # 在pub执行下面的
 ssh-copy-id -i /root/.ssh/id_rsa.pub root@pri的ip
 # 输入yes就可以了
 # 如果不是22端口,就在后面加上 (-p 端口)
 ssh-copy-id -i /root/.ssh/id_rsa.pub root@pri的ip -p 端口

  • 15
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

3分云计算

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值