ssh免密码登录配置(如何通过linux ssh远程linux不用输入密码登入)

本文目录
- 如何通过linux ssh远程linux不用输入密码登入
- 用ssh免密码以root身份登陆vagrant虚拟机
- ssh免密码登录配置找不到另外两个节点
- Linux免密码SSH登录(公钥登录)
- ssh 双机互信:免密码登录设置步骤及常见问题
- linux下怎样设置ssh无密码登录
- 如何在linux中如何配置ssh免密码登录
- centos7配置ssh
- CentOS修改ssh端口号及ssh免密码登录
如何通过linux ssh远程linux不用输入密码登入
可以设置ssh密钥实现自动登录。
1.创建ssh密钥.
2.将生成的公钥传送到你要登录的远程主机,并将其加入文件 ~/.ssh/authorized_keys
具体步骤如下:
1.在你的主机生成密钥 ssh-keygen
2.查看下生成的密钥 注意路径
3.把公钥id_rsa.pub添加到远程服务器(你要连接的)~/.ssh/authorized_keys里。
先用scp把公钥拷过去。
然后把公钥导入authorized_keys
4.测试。
测试已经OK。但是我的公钥是设置了密码的,所以这里还是提示输入公钥密码。如果
不设置公钥密码就不需要密码了。
5.注意事项。
如果没有.ssh文件,请ssh 192.168.0.188 (IP可以SSH的) 随便执行一次会自动生成
如果没有authorized_keys 请touch一个。 touch authorized_keys
修改下权限 chmod authorized_keys
用ssh免密码以root身份登陆vagrant虚拟机
原来登陆vagrant虚拟机都是用 vagrant ssh VM_name ,但是在自己虚拟机上,只是测试使用,为了方便想直接以root身份登陆而不是vagrant身份。
主机:mac os10.12.4
虚拟机: Ubuntu 14.04
下面是实现主机到虚拟机实现root免密码登陆:
1 sudo vim /etc/hosts ,在里面添加: VM_ip VM_name 。
2 把主机里的公钥拷贝到共享文件夹: cp ~/.ssh/id_rsa.pub ~/vagrant/id_rsa.pub
3 登陆到虚拟机内,执行下面的命令:
同样的原理可以实现从一台虚拟机通过ssh登陆到其他虚拟机,不懂可以联系我。
主要有几个点需要注意:
ssh免密码登录配置找不到另外两个节点
系统bug,网络问题。
1、系统bug是ssh免密码登录配置软件系统出现了问题导致找不到另外两个节点,等待官方修复即可。
2、网络问题是自身设备连接的网络出现较大波动,导致ssh免密码登录配置找不到另外两个节点,更换网络重新打开即可。
Linux免密码SSH登录(公钥登录)
SSH有两种登录方式, 一是口令登录, 即常规的用户名密码登录; 二是公钥登录, 只要在server端配置好client端的公钥, 就可以实现免密登录. 控制端为client端, 远程主机为server端, 下同.
在client端输入命令然后一路回车
运行结束以后,在client端~/.ssh/目录下,会新生成两个文件: id_rsa.pub 和 id_rsa 。前者是你的公钥,后者是你的私钥。这时再输入如下命令,将公钥传送到远程主机host上面:
server端将用户上传的公钥,保存在用户主目录的 ~/.ssh/authorized_keys 文件中。
原本以上配置就ok了,但是OpenWrt的ssh采用的是dropbear,一种轻量级的ssh服务。需要对其进行额外配置:
大功告成 -》
SSH参考资料: SSH原理与运用(一):远程登录
ssh 双机互信:免密码登录设置步骤及常见问题
在 linux 系统管理中,设置免密码登录,进行机器的批量管理是最常用的一个方法。比如针对几十甚至上百台线上机器,通常我们会设置一台“发布机”作为中央控制机对其它线上机器免密码登录,然后进行软件、配置文件的分发、更新、部署。当然了,针对上面的问题,解决方案并非最优且唯一,比如你也可以用 expect 模拟自动输入来完成自动登录验证这一过程,或者用现在一些开源的软件自动化配置和部署工具,比如 Puppet,但这都不在本文的讨论范畴,今天咱们要说的就是这种最原始、最有效、最直接的方式:免密码登录。
(1)问题:
假设:现有2台机器
1、个人机192.168.1.110
2、服务器192.168.1.112
要使110无需密码通过ssh登入112
(2)步骤
1、创建密钥
2、复制公密到服务器
3、添加公密到192.168.112的信任区域
注: 2,3两步可由命令ssh-copy-id一步到位
4、测试
此时整个步骤已经完成,你可以尝试 ssh ip 或者 /etc/hosts 中的主机名试试。
(3)可能遇到的问题
1、在使用 ssh-copy-id 错误提示
表现:
公钥,私钥已经生成,执行上述命令完毕出现如下错误:
$ ssh-copy-id remote-machine
/usr/bin/ssh-copy-id: ERROR: No identities found
解决方法:
g 之发现缺少公钥路径,通过 -i 加上即可:
2、ssh ip 可以成功登录,ssh hostname 却失败
表现:
ssh hostname
ssh: connect to host localhost port 22: Connection refused
解决方法:
看下对方的主机名是不是在 /etc/hosts 文件中和 ip 做了映射,没有就加上即可。
3、ssh 的配置目录权限问题
由于 ssh 的权限直接关系到服务器的安全问题,因此 ssh 每次读取配置都会校验相关文件夹和文件的权限,以防止权限过大对外暴露。
表现:
设置了.ssh目录,在authorized_keys设置了key后登录还提示需要输入密码。
解决方法:
注意权限,.ssh权限700,authorized_keys权限600,就KO啦!
chmod 700 ~/.ssh/
chmod 600 ~/.ssh/authorized_keys
4、ssh localhost:publickey 授权失败
注:ssh可同时支持publickey和password两种授权方式,publickey默认不开启,需要配置为yes。
如果客户端不存在.ssh/id_rsa,则使用password授权;存在则使用publickey授权;
如果publickey授权失败,依然会继续使用password授权。
不要设置 PasswordAuthentication no ,它的意思是禁止密码登录,这样就只能本机登录了!
5、ssh localhost:Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
最后重启你的 linux 执行 ssh localhost
6、ssh localhost:需要密码
cat ~/.ssh/id_rsa.pub 》》 ~/.ssh/authorized_keys
7、ssh ip 或 hostname 均提示:connection refused
目标主机的ssh server端程序是否安装、服务是否启动,是否在侦听22端口;
是否允许该用户登录;
本机是否设置了iptables规则,禁止了ssh的连入/连出;
***隐藏网址***
(4)最后的问题
本文介绍的建立基于免密码登录,双机互信的管理方式简单、直接,但是安全就是个问题了,稍有不慎容易被一锅端,建议加上防火墙的端口、ip 策略,有条件的话试试动态口令,这样会更稳妥些。再有就是当机器规模达到上百、上千台的时候,如果对文件数据、机器状态的实时同步、一致性的要求很高的时候,这种管理方式的弊端就出来了。
(5)Refer:
***隐藏网址***
***隐藏网址***
***隐藏网址***
***隐藏网址***
linux下怎样设置ssh无密码登录
在CentOS/RHEL上设置SSH免密码登录
导读 作为系统管理员,你计划在 Linux 上使用 OpenSSH,完成日常工作的自动化,比如文件传输、备份数据库转储文件到另一台服务器等。为实现该目标,你需要从主机 A 能自动登录到主机 B。自动登录也就是说,要在 shell 脚本中使用ssh,而无需要输入任何密码。
本文会告诉你怎样在 CentOS/RHEL 上设置 SSH 免密码登录。自动登录配置好以后,你可以通过它使用 SSH (Secure Shell)和安全复制 (SCP)来移动文件。
SSH 是开源的,是用于远程登录的最为可靠的网络协议。系统管理员用它来执行命令,以及通过 SCP 协议在网络上向另一台电脑传输文件。
通过配置 SSH 免密码登录,你可以享受到如下的便利:
◆用脚本实现日常工作的自动化。
◆增强 Linux 服务器的安全性。这是防范虚拟专用服务器(VPS)遭受暴力破解攻击的一个推荐的方法,SSH 密钥单凭暴力破解 是几乎不可攻破的。
什么是 Ssh-Keygen
ssh-keygen 是一个用来生成、创建和管理 SSH 认证用的公私钥的工具。通过 ssh-keygen 命令,用户可以创建支持SSH1 和 SSH2 两个协议的密钥。ssh-keygen 为 SSH1 协议创建 RSA 密钥,SSH2 则可以是 RSA 或 DSA。
什么是 Ssh-Copy-Id
ssh-copy-id 是用来将本地公钥拷贝到远程的 authorized_keys 文件的脚本命令,它还会将身份标识文件追加到远程机器的 ~/.ssh/authorized_keys 文件中,并给远程主机的用户主目录适当的的权限。
SSH 密钥
SSH 密钥为登录 Linux 服务器提供了更好且安全的机制。运行 ssh-keygen 后,将会生成公私密钥对。你可以将公钥放置到任意服务器,从持有私钥的客户端连接到服务器的时,会用它来解锁。两者匹配时,系统无需密码就能解除锁定。
在 CentOS 和 RHEL 上设置免密码登录 SSH
以下步骤在 CentOS 5/6/7、RHEL 5/6/7 和 Oracle Linux 6/7 上测试通过。
节点1:192.168.0.9 节点2 : 192.168.0.10
本章目录结构
步骤一 :
步骤二:
步骤三:
步骤四:
步骤一 :
测试节点1到节点2的连接和访问:
# ssh root@192.168.0.10
The authenticity of host ’192.168.0.10 (192.168.0.10)’ can’t be established.
RSA key fingerprint is 6d:8f:63:9b:3b:63:e1:72:b3:06:a4:e4:f4:37:21:42.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ’192.168.0.10’ (RSA) to the list of known hosts.
root@192.168.0.10’s password:
Last login: Thu Dec 10 22:04:55 2015 from 192.168.0.1
#
步骤二:
使用 ssh-key-gen 命令生成公钥和私钥,这里要注意的是可以对私钥进行加密保护以增强安全性。
# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
b4:51:7e:1e:52:61:cd:fb:b2:98:4b:ad:a1:8b:31:6d root@node1.ehowstuff.local
The key’s randomart image is:
+------+
| . ++ |
| o o o |
| o o o . |
| . o + .. |
| S . . |
| . .. .|
| o E oo.o |
| = ooo. |
| . o.o. |
+-----------------+
步骤三:
用 ssh-copy-id 命令将公钥复制或上传到远程主机,并将身份标识文件追加到节点2的 ~/.ssh/authorized_keys 中:
# ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.0.10
root@192.168.0.10’s password:
Now try logging into the machine, with "ssh ’192.168.0.10’", and check in:
.ssh/authorized_keys
to make sure we haven’t added extra keys that you weren’t expecting.
步骤四:
验证免密码 SSH 登录节点2:
# ssh root@192.168.0.10
Last login: Sun Dec 13 14:03:20 2015 from www.ehowstuff.local
百度搜索《linux就该这么学》,技术干货里面有,也可以看下这本书!
如何在linux中如何配置ssh免密码登录
首先需要在服务器端设置/etc/ssh/sshd_config
# vim /etc/ssh/sshd_config
修改如下两行为yes。其实大多数情况下不用修改,默认就是yes。
RSAAuthentication yes
PubkeyAuthentication yes
(1) 如果客户机和服务器都是Linux机器,那么我们使用下面的方法:(后面第2节会提到怎么在Windows下使用Putty生成密钥对)
我们需要在客户端生成RSA密钥对。使用ssh-keygen命令:
# ssh-keygen -t rsa
参数t的意思是type,后面跟着加密类型,这里我们是rsa。
然后会提示你输入密钥保存完成文件名,这里我们需要使用默认的id_rsa,之后才能正常才能登录。如果你生成的密钥作为其他用处,那么可以命名为其他名称:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/cake/.ssh/id_rsa):
之后会提示你输入一个passphrase,我们这里可以留空,这样我们登录的时候就不许输入密码。
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
然后会提示你密钥生成成功。这是你的私钥保存为~/.ssh/id_rsa,你的公钥是~/.ssh/id_rsa.pub
我们现在需要做的是,把id_rsa.pub的内容,添加的服务器端的~/.ssh/autherized_keys文件最后。
你可以把这个文件上传到服务器端,然后使用命令:
# cat id_rsa.pub 》》 ~/.ssh/autherized_keys
到这里就完成了。
(2) 在Windows下使用Putty生成密钥对:
Putty的安装目录下有个puttygen.exe程序,我们运行这个程序。
之后点击Generate,开始生成密钥对。我们需要根据提示,在指定方框内随机滑动鼠标。这是为了根据鼠标轨迹,产生一些随机数据。
之后生成结束,我们点击Save Private Key将私钥存放在某个目录中。然后赋值最上面文本框中的全部内容,粘贴到Linux服务器端的autherized_key的最后。
我们现在可以关闭这个小程序。
现在打开Putty,在左边的选项中,选择Conneciton–SSH–Auth,在Private key file for authentication中,选择刚才保存的私钥路径就可以了。
到此位置,Putty也可以不用密码登录了。
centos7配置ssh
centos7 dvd镜像自带ssh服务,但是一路配置下来发现没有/.ssh文件夹,需要注意
环境为刚完成安装的崭新centos7
存疑 因为我并没有找到这个文件夹。即使不做这一步也能成功连接ssh
以下是服务器免密码登录,我并没有做,而且与网上其他方法不同,现在这贴出来
服务器免密码登录
将公钥粘贴其中
esc 后输入 :wq 保存退出
完成服务器免密码登录配置
***隐藏网址***
CentOS修改ssh端口号及ssh免密码登录
一般ssh的默认端口为22
比如正常使用终端登录局域网电脑
注意是 sshd_config 文件
在#Port 22行去掉#号注释,同时加入想要使用的端口号如 Port 22438
这里保留22端口是为了防止当前无法使用ssh登录
成功返回success
重启防火墙:
成功返回success
查看添加端口是否成功,成功则显示yes,否则为no:
查看本机SELinux状态,如果是关闭则可以跳过此步骤
以下使用semanage操作,没有可以使用以下命令安装:
以下命令为查看当前SELinux允许的ssh端口:
添加22438端口到SELinux,并确认
测试新端口ssh连接
可以正常登录即成功
将之前开放的Port 22一行注释掉并保存
然后重启ssh
使用以下命令无法登录服务器
本机终端输入:
配置相关全部直接回车
在~/.ssh/目录下生成两个文件
在本机终端输入:
在本机将认证文件复制到服务器
如果服务器上没有文件夹就新建一个.ssh/文件夹
Enjoy

更多文章:
getrealpath参数(java怎么读取web工程里面的文件)
2026年10月14日 14:40
makefile文件怎么用(怎么打开使用makefile文件不是语法的依赖关系!!)
2026年10月14日 13:00
socket编程中(Socket 编程中 close() 和 shutdown() 有什么区别)
2026年10月14日 08:20
用jsp做一个登录网页(JSP作业,求大神写代码!编制一个简单的登录界面)
2026年10月14日 06:50
change directory(change directory是什么意思)
2026年10月14日 04:20
javascript基础教程第9版(js鼠标悬停显示文字实例)
2026年10月14日 03:50
excel中index函数的用法(EXCEL工作簿中多个工作表如何应用函数INDEX)
2026年10月14日 01:40




