远程登录ssh免密码
admin
2023-05-01 05:42:17
0

问题:

假如我们现在有两台机器:ServerA和ServerB,现在想要让ServerA不用输入密码就能够进行访问。

方法和原理:

我们使用ssh-keygen在ServerA上生成private和public密钥,将生成的public密钥拷贝到远程机器ServerB上后,就可以使用ssh命令无需密码登录到另外一台机器ServerB上。

在linux系统中,ssh是远程登录的默认工具,因为该工具的协议使用了RSA/DSA的加密算法【默认是DSR算法】,该工具做linux系统的远程管理是非常安全的。

实验步骤:

1.登录ServerA

2.ssh-keygen -t  rsa,将会生成公钥和私钥文件id_rsa和id_rsa.pub【如果一直回车下去,最后这两个文件应该在/home/$USER/.ssh下面】

3.将 .pub 文件复制到ServerB机器的 .ssh 目录下,并保存为authorized_keys

可以使用:

ssh-cop-id命令会将指定的公钥文件复制到远程计算机

[oracle@Test232 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub oracle@192.168.55.232

28

oracle@192.168.55.232's password: 

Now try logging into the machine, with "ssh 'oracle@192.168.55.232'", and check in:

.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

[oracle@Test232 ~]$ ssh oracle@192.168.55.232

oracle@192.168.55.232's password: 

Last login: Thu Nov 24 16:05:32 2011 from 192.168.55.229

[oracle@Test232 ~]$ 

4.大功告成,从A机器登录B机器的目标账户,不再需要密码了

5.设置文件和目录权限【这一步可以省略,但是为了安全起见,加上也是有必要的~】

设置authorized_keys权限

chmod 644 authorized_keys 

设置.ssh目录权限

chmod 700 -R .ssh

6.要保证.ssh和authorized_keys都只有用户自己有写权限。否则验证无效。(今天就是遇到这个问题,找了好久问题所在),其实仔细想想,这样做是为了不会出现系统漏洞。

报错:

The authenticity of host '192.168.20.59 (192.168.20.59)' can't be established.  

RSA key fingerprint is 6a:37:c0:e1:09:a4:29:8d:68:d0:ca:21:20:94:be:18.  

Are you sure you want to continue connecting (yes/no)? yes  

Warning: Permanently added '192.168.20.59' (RSA) to the list of known hosts.  

root@192.168.20.59's password:   

Permission denied, please try again.  

root@192.168.20.59's password:   

Permission denied, please try again.  

root@192.168.20.59's password:   

Permission denied (publickey,gssapi-with-mic,password).  

如果说以上权限没有问题的话,那就赶紧去看看你的配置文件吧,因为有人会喜欢改这个东东,导致你无论如何都不会成功:

打开/etc/ssh/ssh_config文件,找到以下部分:

#   IdentityFile ~/.ssh/identity

   IdentityFile ~/.ssh/id_rsa

看看你的私钥名字是不是这个 ~/.ssh/id_rsa

哈哈,还是得好好看配置文件喽~

假如有台中控机已经打通了到各台应用主机间的无密码远程登陆,现在需要打通另一台中控,下面是我写的脚本来实习此功能:

############################################ 实现中控无密码登陆 ############################################

#!/bin/bash

#Author:zhuying

scriptdir=/home/oracle/zy/changecps

for ip in `grep -v ^# "$scriptdir"/cps.ip`

do

        scp /home/oracle/zy/changecps/169keys oracle@$ip:~/

        ssh $ip "cat ~/169keys >> /home/oracle/.ssh/authorized_keys;rm ~/169keys"

        ssh $ip "cat /home/oracle/.ssh/authorized_keys|sort|uniq > /home/oracle/.ssh/tmp.keys"

        ssh $ip "mv /home/oracle/.ssh/tmp.keys /home/oracle/.ssh/authorized_keys"

        ssh $ip "chmod 644 /home/oracle/.ssh/authorized_keys"

done

###########################################  实现中控无密码登陆 ##############################################

ps:

如果我们添加公钥后,还是无法访问,也可能是ServerA主机上面的一个文件known_hosts中已经存在ServerB的ip信息,删除重新访问即可。

另外,如果以上方法尝试过后还是不行,可能是因为登录失败次数过多被锁定,这个时候我们就需要去看看我们的系统日志了/var/log/messages,将之前的锁定信息日志删除就可以了。

问题:


(1)Connection closed by $IP


可能是超过系统默认失败次数了,然后清理就ok了~【faillog -a;faillog -r】


(2)在前面步骤都正确无误的情况下,每次远程登录还是提示让输入密码,这时候有可能是权限问题:


    chmod 644 authorized_keys再次登录就ok了~【如果是Red Hat 5.6的话,最好改成600,否则认为是不安全的~】


相关内容

热门资讯

汇正财经贺峰的一对一指导服务怎...   对于考虑购买证券投资顾问服务的投资者来说,'一对一指导服务怎么样'是一个重要的考量维度。需要首先...
重庆失联00后网格员龚宝冬确认...   重庆失联00后网格员龚宝冬确认遇难  【重庆失联00后网格员龚宝冬确认遇难】2026年7月29日...
震惊!女子种出二三十万斤玉米后... 女子种出二三十万斤玉米后懵圈了  【女子种出二三十万斤玉米后懵圈了】7月28日消息,商华颖,杭州千岛...
烈焰熊熊,堪比“原子弹”,欧洲... 据美国有线电视新闻网(CNN)7月29日报道,席卷法国西南部的大片野火燃烧得如此猛烈,以至于形成了一...
外交部:对日本熊本县地震遇难者... 据凤凰卫视报道,针对日本熊本县发生强震造成人员伤亡,中国外交部发言人毛宁7月29日在例行记者会上表示...
高铁喧哗被劝阻后叫嚣全家体制内... “女子高铁喧哗被劝阻后叫嚣全家体制内”一事迎来官方通报。据新京报报道,7月29日,辽宁北票市公安局发...
广东专业蓝牙耳机定制厂家推荐,... 在珠三角腹地,广东早已成为全球蓝牙耳机产业链的“心脏地带”。从深圳华强北的声学元件批发,到东莞、惠州...
格雷厄姆葬礼变地缘竞价场!两大... 有些葬礼,送别的是逝者;有些葬礼,演的却是活人最现实的政治博弈。当地时间7月28日,美国老牌鹰派参议...
一道小学数学题难住3名医学博士... 3名不同学校的博士同做一道数学题,谁最厉害?近日,一陕西网友发布的视频引发热议。29日,视频发布者“...
华为全新“小艺任务”亮相:整合... 7月29日,在华为鸿蒙电脑新品技术沟通会上,终端云服务小艺业务部总裁贾永利宣布,小艺将迎来“从对话到...