ssh无需密码提示登录
2010-08-09 16:40
274 查看
ssh无需输入密码登录
这个是我要做oracle RAC的一个准备条件.
服务器: 192.168.0.221 A
客户端: 192.168.0.220 B
测试目的: 我要用oracle无需输入密码登录 A
实现原理:
使用一种被称为"公私钥"认证的方式来进行ssh登录. "公私钥"认证方式简单的解释是
1.首先在客户端上创建一对公私钥 (公钥文件:~/.ssh/id_rsa.pub; 私钥文件:~/.ssh/id_rsa)
2.然后把公钥放到服务器上(~/.ssh/authorized_keys), 自己保留好私钥
3.当ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配.如果匹配成功就可以登录了
说明:
第一步是生成 SSH 的公共密钥和专用密钥。 SSH 协议有两个版本;版本 1 使用 RSA,版本 2 使用 DSA,
因此我们将创建这两种类型的密钥,以确保 SSH 能够使用任一版本。 ssh-keygen 程序将根据传递给它的参数生
成任一类型的公共密钥和专用密钥。
对于oracle用户,应该准备条件:
在服务器A上:
mkdir ~/.ssh
chmod 755 ~/.ssh
在客户端B:
mkdir ~/.ssh
chmod 755 ~/.ssh
步骤:
1. 在客户端B上以oracle登录,并执行"ssh-keygen -t rsa"
[oracle@skate-test ~]$ /usr/bin/ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/oracle/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/oracle/.ssh/id_rsa.
Your public key has been saved in /home/oracle/.ssh/id_rsa.pub.
The key fingerprint is:
3a:3f:ba:75:07:23:76:43:4c:80:a7:a3:86:c6:9c:70
(注:每次执行"ssh-keygen -t rsa"产生的私钥文件都会不同)
a)如果文件"~/.ssh/id_rsa"存在,会提示是否覆盖该文件,此时可选择"n"不覆盖该文件而使用已有的id_rsa文件;
如果选择"y"则会重新生成"~/.ssh/id_rsa"文件,接下来会提示输入passphrase,回车确定使用空的passphrase,再次
回车确认(这里也可以输出passphrase,相当于ssh时登录的密码)。然后会重新生成"~/.ssh/id_rsa"文件和"~/.ssh/id_rsa.pub"文件
b)如果"~/.ssh/id_rsa"文件和"~/.ssh/id_rsa.pub"文件不存在则会自动创建新的"~/.ssh/id_rsa"文件
和"~/.ssh/id_rsa.pub"文件,passphrase设置同上。
2 .使用ssh oracle@192.168.0.221登录到服务器A,编辑服务器上"~/.ssh/authorized_keys"文件,将客户端机器B上
的"~/.ssh/id_rsa.pub"文件内容追加到"~/.ssh/authorized_keys"文件中。
(注:可以在客户端机器上使用以下命令来实现:
[oracle@skate-test ~]$ cat ~/.ssh/id_rsa.pub |ssh oracle@192.168.0.221 "cat >>~/.ssh/authorized_keys"
此时会要求输入oracle在服务器A上的登录密码,输入后即会将客户端机器上的"~/.ssh/id_rsa.pub"文件内容追加到服务器
上的"~/.ssh/authorized_keys"文件中)
3.如果在第一步设置了passphrase密码,在这里还要做一些特殊设置,我们可以通过ssh-agent来帮助我们自动输入passphrase
(只是看起来像是自动输入而已),我们只要在第一次登录时输入一次passphrase, 以后的工作就可以交给ssh-agent。
在客户端机器B上执行命令ssh-add,这里会提示输入一次passphrase。输入第一步中设置的passphrase之后会修
改"~/.ssh/id_rsa"文件。再在客户端B执行"ssh oracle@192.168.0.221"即可无密码登录到服务器端。
[oracle@skate-test ~]$ ssh-add //用这个就可以了,但我在oracle的官方文档关于RAC的配置了看到下面的注释
Enter passphrase for /home/oracle/.ssh/id_rsa:
Identity added: /home/oracle/.ssh/id_rsa (/home/oracle/.ssh/id_rsa)
[oracle@skate-test ~]$ ssh oracle@192.168.0.221 date
Thu Mar 13 17:24:52 CST 2008
注释:
$ exec /usr/bin/ssh-agent $SHELL
$ /usr/bin/ssh-add
Enter passphrase for /home/oracle/.ssh/id_rsa:
Identity added: /home/oracle/.ssh/id_rsa (/home/oracle/.ssh/id_rsa)
Identity added: /home/oracle/.ssh/id_dsa (/home/oracle/.ssh/id_dsa)
我也测试过这个,也可以.但有什么区别,不是很清楚
4,在服务器A应该设置
[oracle@skate-test ~]$ chmod 644 ~/.ssh/authorized_keys
注意:
1. 现在可以用ssh在客户端B上无密码提示进入服务器A,如果要想用ssh从服务器A无密码提示计入客户端B,,只要按着上面
的顺序在服务端A上操作就可以.
2. 因SSH 协议有两个版本;版本1 使用 RSA,版本2 使用 DSA,因此在生产环境中,我们将创建这两种类型的密钥,以确保 SSH
能够使用任一版本,ssh-keygen 程序将根据传递给它的参数生成任一类型的公共密钥和专用密钥。
我们上面的测试中只生成了ssh 协议版本1 RSA,如果要生成ssh 协议版本2 DSA,只要用命令:
[oracle@skate-test ~]$ /usr/bin/ssh-keygen -t dsa
以后的操作和rsa的操作一样.
3. 请注意,用户等效性仅为当前会话建立。 如果您切换到其他会话或注销并重新登录,则必须再次运行 ssh-agent 和 ssh-add
才能重新建立用户等效性。
from:http://blog.csdn.net/wyzxg/archive/2008/03/13/2177502.aspx
这个是我要做oracle RAC的一个准备条件.
服务器: 192.168.0.221 A
客户端: 192.168.0.220 B
测试目的: 我要用oracle无需输入密码登录 A
实现原理:
使用一种被称为"公私钥"认证的方式来进行ssh登录. "公私钥"认证方式简单的解释是
1.首先在客户端上创建一对公私钥 (公钥文件:~/.ssh/id_rsa.pub; 私钥文件:~/.ssh/id_rsa)
2.然后把公钥放到服务器上(~/.ssh/authorized_keys), 自己保留好私钥
3.当ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配.如果匹配成功就可以登录了
说明:
第一步是生成 SSH 的公共密钥和专用密钥。 SSH 协议有两个版本;版本 1 使用 RSA,版本 2 使用 DSA,
因此我们将创建这两种类型的密钥,以确保 SSH 能够使用任一版本。 ssh-keygen 程序将根据传递给它的参数生
成任一类型的公共密钥和专用密钥。
对于oracle用户,应该准备条件:
在服务器A上:
mkdir ~/.ssh
chmod 755 ~/.ssh
在客户端B:
mkdir ~/.ssh
chmod 755 ~/.ssh
步骤:
1. 在客户端B上以oracle登录,并执行"ssh-keygen -t rsa"
[oracle@skate-test ~]$ /usr/bin/ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/oracle/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/oracle/.ssh/id_rsa.
Your public key has been saved in /home/oracle/.ssh/id_rsa.pub.
The key fingerprint is:
3a:3f:ba:75:07:23:76:43:4c:80:a7:a3:86:c6:9c:70
(注:每次执行"ssh-keygen -t rsa"产生的私钥文件都会不同)
a)如果文件"~/.ssh/id_rsa"存在,会提示是否覆盖该文件,此时可选择"n"不覆盖该文件而使用已有的id_rsa文件;
如果选择"y"则会重新生成"~/.ssh/id_rsa"文件,接下来会提示输入passphrase,回车确定使用空的passphrase,再次
回车确认(这里也可以输出passphrase,相当于ssh时登录的密码)。然后会重新生成"~/.ssh/id_rsa"文件和"~/.ssh/id_rsa.pub"文件
b)如果"~/.ssh/id_rsa"文件和"~/.ssh/id_rsa.pub"文件不存在则会自动创建新的"~/.ssh/id_rsa"文件
和"~/.ssh/id_rsa.pub"文件,passphrase设置同上。
2 .使用ssh oracle@192.168.0.221登录到服务器A,编辑服务器上"~/.ssh/authorized_keys"文件,将客户端机器B上
的"~/.ssh/id_rsa.pub"文件内容追加到"~/.ssh/authorized_keys"文件中。
(注:可以在客户端机器上使用以下命令来实现:
[oracle@skate-test ~]$ cat ~/.ssh/id_rsa.pub |ssh oracle@192.168.0.221 "cat >>~/.ssh/authorized_keys"
此时会要求输入oracle在服务器A上的登录密码,输入后即会将客户端机器上的"~/.ssh/id_rsa.pub"文件内容追加到服务器
上的"~/.ssh/authorized_keys"文件中)
3.如果在第一步设置了passphrase密码,在这里还要做一些特殊设置,我们可以通过ssh-agent来帮助我们自动输入passphrase
(只是看起来像是自动输入而已),我们只要在第一次登录时输入一次passphrase, 以后的工作就可以交给ssh-agent。
在客户端机器B上执行命令ssh-add,这里会提示输入一次passphrase。输入第一步中设置的passphrase之后会修
改"~/.ssh/id_rsa"文件。再在客户端B执行"ssh oracle@192.168.0.221"即可无密码登录到服务器端。
[oracle@skate-test ~]$ ssh-add //用这个就可以了,但我在oracle的官方文档关于RAC的配置了看到下面的注释
Enter passphrase for /home/oracle/.ssh/id_rsa:
Identity added: /home/oracle/.ssh/id_rsa (/home/oracle/.ssh/id_rsa)
[oracle@skate-test ~]$ ssh oracle@192.168.0.221 date
Thu Mar 13 17:24:52 CST 2008
注释:
$ exec /usr/bin/ssh-agent $SHELL
$ /usr/bin/ssh-add
Enter passphrase for /home/oracle/.ssh/id_rsa:
Identity added: /home/oracle/.ssh/id_rsa (/home/oracle/.ssh/id_rsa)
Identity added: /home/oracle/.ssh/id_dsa (/home/oracle/.ssh/id_dsa)
我也测试过这个,也可以.但有什么区别,不是很清楚
4,在服务器A应该设置
[oracle@skate-test ~]$ chmod 644 ~/.ssh/authorized_keys
注意:
1. 现在可以用ssh在客户端B上无密码提示进入服务器A,如果要想用ssh从服务器A无密码提示计入客户端B,,只要按着上面
的顺序在服务端A上操作就可以.
2. 因SSH 协议有两个版本;版本1 使用 RSA,版本2 使用 DSA,因此在生产环境中,我们将创建这两种类型的密钥,以确保 SSH
能够使用任一版本,ssh-keygen 程序将根据传递给它的参数生成任一类型的公共密钥和专用密钥。
我们上面的测试中只生成了ssh 协议版本1 RSA,如果要生成ssh 协议版本2 DSA,只要用命令:
[oracle@skate-test ~]$ /usr/bin/ssh-keygen -t dsa
以后的操作和rsa的操作一样.
3. 请注意,用户等效性仅为当前会话建立。 如果您切换到其他会话或注销并重新登录,则必须再次运行 ssh-agent 和 ssh-add
才能重新建立用户等效性。
from:http://blog.csdn.net/wyzxg/archive/2008/03/13/2177502.aspx
相关文章推荐
- ssh无需密码提示登录
- Ubuntu 下 SSH 实现远程登录 无需输入密码
- ssh登录,密码提示出现慢的解决方法
- SSH无需密码密钥登录
- SSH无需密码密钥登录
- SSH登录太慢(等很久才提示输入密码)的问题
- 配置ssh公钥登录提示还是输入密码
- ssh 免密码登录设置后还是提示需要输入密码
- 解决ssh免密码登录仍然提示输入密码问题
- redhat ssh 免密码登录设置后还是提示需要输入密码
- ssh登录,密码提示出现慢的解决方法。
- 在配置无密码登录的时候,ssh老是提示输入密码
- SSH登录太慢(等很久才提示输入密码)的问题
- SSH无需密码密钥登录
- SSH实现两台Linux主机无需密码互相登录
- SSH无需密码密钥登录
- 低版本xshell登录ssh提示密码错误
- 利用ssh-copy-id无需密码登录远程服务器
- 配置ssh免密码登录设置后还是提示需要输入密码
- 设置ssh登录无需密码