方法一:
使用下例中ssky-keygen和ssh-copy-id,僅需通過3個步驟的簡單設置而無需輸入密碼就能登錄遠程Linux主機。
ssh-keygen 創建公鑰和密鑰。
ssh-copy-id 把本地主機的公鑰復制到遠程主機的authorized_keys文件上。
ssh-copy-id 也會給遠程主機的用戶主目錄(home)和~/.ssh, 和~/.ssh/authorized_keys設置合適的權限 。
步驟1: 用 ssh-key-gen 在本地主機上創建公鑰和密鑰
ligh@local-host$ ssh-keygen -t rsa
Enter file in which to save the key (/home/jsmith/.ssh/id_rsa):[秘鑰文件名]
Enter passphrase (empty for no passphrase): [秘鑰密碼(直接輸入回車即為不帶密碼的秘鑰)]
Enter same passphrase again: [重復輸入秘鑰密碼]
Your identification has been saved in /home/jsmith/.ssh/id_rsa.
Your public key has been saved in /home/jsmith/.ssh/id_rsa.pub.
The key fingerprint is: 33:b3:fe:af:95:95:18:11:31:d5:de:96:2f:f2:35:f9
ligh@local-host
步驟2: 用 ssh-copy-id 把公鑰復制到遠程主機上
ligh@local-host$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.3
ligh@remote-host‘s password:
Now try logging into the machine, with ―ssh ?remote-host‘‖, and check in:
.ssh/authorized_keys to make sure we haven‘t added extra keys that you weren‘t expecting.
[注: ssh-copy-id 把密鑰追加到遠程主機的 .ssh/authorized_key 上.]
步驟3: 直接登錄遠程主機
ligh@local-host$ ssh remote-host
Last login: Sun Nov 16 17:22:33 2008 from 192.168.1.2
[注: SSH 不會詢問密碼.]
ligh@remote-host$
[注: 你現在已經登錄到了遠程主機上]
http://blog.163.com/lgh_2002/blog/static/44017526201011333227161/
方法二
一、概述
1、就是為了讓兩個linux機器之間使用ssh不需要用戶名和密碼。采用了數字簽名RSA或者DSA來完成這個操作
2、模型分析
假設 A 為客戶機器,B 為目標機;
要達到的目的:
A機器ssh登錄B機器無需輸入密碼;
加密方式選 rsa|dsa均可以,默認dsa
二、具體操作流程
單向登陸的操作過程(能滿足上邊的目的):
1、登錄A機器
2、ssh-keygen -t [rsa|dsa],將會生成密鑰文件和私鑰文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub
3、將 .pub 文件復制到B機器的 .ssh 目錄, 並 cat id_rsa.pub >> ~/.ssh/authorized_keys
4、大功告成,從A機器登錄B機器的目標賬戶,不再需要密碼了;(直接運行 #ssh 用戶名@ip )
http://blog.csdn.net/kongqz/article/details/6338690
以下兩點注意:
1、配置私鑰
a、使用命令ssh-keygen -t rsa生成密鑰,會生成一個私鑰和一個公鑰,在提示輸入passphrase時如果不輸入,直接回車,那么以后你登錄服務器就不會驗證密碼,否則會要求你輸入passphrase,默認會將私鑰放在/(用戶名)/.ssh/id_rsa公鑰放在
/用戶名/.ssh/id_rsa.pub。
b、將公鑰拷貝到遠程服務器上的/(用戶名)/.ssh/authorized_keys文件
(scp /用戶名/.ssh/id_rsa.pub server:/用戶名/.ssh/authorized_keys),注意,文件名一定要叫authorized_keys。
c、客戶端上保留私鑰,公鑰留不留都可以。也就是服務器上要有公鑰,客戶端上要有私鑰。這樣就可以實現無密碼驗證登錄了。
2、如果想要獲得最大化的安全性,禁止口令登錄,可以修改遠程主機上/etc/ssh/sshd_conf中的
PasswordAuthentication yes 改為
PasswordAuthentication no
也即只能使用密匙認證的openssh,禁止使用口令認證。