怎样使用SSH不输入密码登录远端服务器?
2014-01-13 16:22
411 查看
一、单向无密码访问
以服务器A访问服务器B为例,进行无密码访问,配置如下:1.生成RSA密钥对
在终端输入如下命令(停止的地方直接回车):[firekyrin@firekyrin ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/firekyrin/.ssh/id_rsa):
Created directory ‘/home/firekyrin/.ssh’.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/firekyrin/.ssh/id_rsa.
Your public key has been saved in /home/firekyrin/.ssh/id_rsa.pub.
The key fingerprint is:
9f:af:c2:6c:cd:62:6b:24:42:a7:35:6b:bb:5f:21:95 firekyrin@firekyrin.com
The key’s randomart image is:
+–[ RSA 2048]—-+
| |
| . |
| E |
| . + . |
| . + oS . |
| o + .o o |
| o * o+ |
| . O.o. |
| .*o+… |
+—————–+
执行完之后,会在/home/firekyrin/.ssh目录下生成两个文件:id_rsa和id_rsa.pub,其中id_rsa是私钥,保留在本机(服务器A);id_rsa.pub是公钥,需要上传到远程服务器(服务器B)。
2.上传公钥
(1)在远程服务器B相应帐号下建立.ssh目录,并设置权限cd /root/
mkdir .ssh
chmod 700 .ssh
(2)将公钥从本机上传到远程服务器B
假设服务器B的IP地址是:
[firekyrin@firekyrin ~]$ scp .ssh/id_rsa.pub root@192.168.1.138:/root/.ssh/authorized_keys
The authenticity of host ’192.168.1.138 (192.168.1.138)’ can’t be established.
RSA key fingerprint is c1:3b:90:a7:39:a1:dc:47:18:04:91:fd:6e:ed:fa:d9.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ’192.168.1.138′ (RSA) to the list of known hosts.
root@192.168.1.138′s password:
id_rsa.pub
上传的时候,会将id_rsa.pub改名为authorized_keys;上传成功后,远程服务器B会被添加到.ssh/known_hosts列表中。
3.测试
上传完毕之后,就可以直接从本机登录到远程服务器B了:[firekyrin@firekyrin .ssh]$ ssh root@192.168.1.138
Last login: Wed Dec 5 10:45:23 2012 from 192.168.1.21
[root@localhost ~]#
二、多服务器之间无密码访问
多服务器之间五米没访问的原理以单向访问是一样的,但设置步骤稍有不同。步骤如下:1.生成密钥对
在每台服务器上执行以下命令,生成密钥对:$ssh-keygen -t rsa
2.上传公钥
将每台服务器上生成的公钥复制到需要无密码登录的服务器上。以三台服务器(192.168.1.137,192.168.1.138,192.168.1.139)为例,他们之间需要相互访问,则在每台服务器生成密钥对后,执行ssh-copy-id命令,将公钥复制到其他两台服务器。以192.168.1.137操作为例,其他服务器操作方法相同:[root@localhost ~]# ssh-copy-id -i .ssh/id_rsa.pub jack@192.168.1.139
The authenticity of host ’192.168.1.139 (192.168.1.139)’ can’t be established.
RSA key fingerprint is ea:26:74:0b:4a:bd:cc:55:52:e6:df:66:55:69:5f:04.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ’192.168.1.139′ (RSA) to the list of known hosts.
jack@192.168.1.139′s password:
Now try logging into the machine, with “ssh ‘jack@192.168.1.139′”, and check in:
~/.ssh/authorized_keys
to make sure we haven’t added extra keys that you weren’t expecting.
3.测试
配置完成后,选择一台服务器登录另一台,如果能够成功登录,说明配置成功。[root@localhost ~]# ssh jack@192.168.1.139
Last login: Fri Dec 7 05:39:41 2012 from 192.168.1.137
[jack@jack-test ~]$
三、附录:配置不成功的可能
如果SSH免登录配置不成功,可以从以下几个方面尝试修改:1.检查
在服务器上检查~/.ssh文件夹权限为755可访问,检查~/.ssh/authorized_keys为600可访问,再次连接。2.在服务器上尝试修改/etc/ssh/sshd_config中的:
PasswordAuthentication no重启sshd:
sudo service sshd restart
再尝试连接。
3.端口占用:
在~/.ssh/config添加:Host server
Hostname ip
Port 10022
或者直接在命令中添加:
ssh-copy-id -i ~/.ssh/id_rsa.pub -p 10022 firekyrin@192.168.1.137
执行命令后再次尝试。
原文地址:http://www.firekyrin.com/archives/2056.html
相关文章推荐
- Linux Generating SSH Keys
- rsync ssh 数据同步分析
- 搭建SSH时的思考和遇到的几个问题的解决方法
- SSH 使用原理 与解释
- SSH整合中 hibernate托管给Spring得到SessionFactory
- Linux VPS利用SSH重置ROOT密码的方法
- ssh,scp自动登陆的实现方法
- Linux SSH 安全策略 限制 IP 登录方法
- 用shell脚本防ssh和vsftpd暴力破解的详解讲解
- 内网ssh/mysql登录缓慢的解决方法
- Linux SSH 安全策略 更改 SSH 端口
- 简单架设SSH+Squid代理服务器的自由上网通道的方法
- 最快捷登陆ssh 服务器的方法
- SSH 登录工具常用命令
- Linux中配置双机SSH信任 操作说明
- SSH框架网上商城项目第20战之在线支付平台
- Hibernate的学习笔记(5)
- ssh连接出错,可以web可以访问且数据库能连
- 简化SSH配置+c3po连接池配置