ssh密鑰登錄


方法一:

使用下例中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 key] 
Enter passphrase (empty for no passphrase): [Press enter key]
Enter same passphrase again: [Pess enter key]
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 (192.168.20.59)為客戶機器,B(192.168.20.60)為目標機;

要達到的目的:
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 192.168.20.60 )

http://blog.csdn.net/kongqz/article/details/6338690







++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

隨着PHP越來越流行,Linux VPS/服務器的使用也越來越多,Linux的安全問題也需要日漸加強,如果你安裝過DenyHosts並設置過郵件提醒,你每天可能會受到數封DenyHosts Report將前來破解SSH密碼的IP加入/etc/hosts.deny。

Linux SSH登錄有兩種:

1、使用密碼驗證登錄

通常VPS或服務器開通后都是直接提供IP和root密碼,使用這種方式就是通過密碼方式登錄。如果密碼不夠強壯,而且沒有安裝DenyHosts之類的防止SSH密碼破解的軟件,那么系統安全將存在很大的隱患。

2、使用密鑰驗證登錄

基於密鑰的安全驗證必須為用戶自己創建一對密鑰,並把共有的密鑰放在需要訪問的服務器上。當需要連接到SSH服務器上時,客戶端軟件就會向服務器發出請求,請求使用客戶端的密鑰進行安全驗證。服務器收到請求之后,先在該用戶的根目錄下尋找共有密鑰,然后把它和發送過來的公有密鑰進行比較。如果兩個密鑰一致,服務器就用公有的密鑰加密“質詢”,並把它發送給客戶端軟件(putty,xshell等)。客戶端收到質詢之后,就可以用本地的私人密鑰解密再把它發送給服務器,這種方式是相當安全的。

一、生成密鑰

因為puttygen生成的密鑰有問題可能會出現:“Server refused our key”,最好使用XShell生成密鑰或者在遠程Linux VPS/服務器生成密鑰。

1、在Linux遠程服務器生成密鑰:

登錄遠程Linux  VPS/服務器,執行:
root@vpser:~#  ssh-keygen -t rsa //先運行這個命令
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):                   //直接回車
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):                                    //輸入密鑰密碼
Enter same passphrase again:                                                                 //重復密鑰密碼
Your identification has been saved in /root/.ssh/id_rsa.         //提示公鑰和私鑰已經存放在/root/.ssh/目錄下
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
15:23:a1:41:90:10:05:29:4c:d6:c0:11:61:13:23:dd root@vpser.net
The key's randomart image is:
+--[ RSA 2048]----+
|=&@Bo+o o.o      |
|=o=.E  o . o     |
| .    .   .      |
|         .       |
|        S        |
|                 |
|                 |
|                 |
|                 |
+-----------------+
root@vpser:~#
將/root/.ssh/下面的id_rsa和id_rsd.pub妥善保存。

2、使用XShell生成密鑰

Xshell是一款Windows下面功能強大的SSH客戶端,能夠按分類保存N多會話、支持Tab、支持多密鑰管理等等,管理比較多的VPS/服務器使用XShell算是比較方便的,推薦使用。

下載XShell,安裝,運行XShell,點擊菜單:Tool ->User Key Generation Wizard,出現如下提示:

點擊Save as file將密鑰保存為id_rsa.pub。

二、將密鑰添加到遠程Linux服務器

1、用winscp,將id_rsa.pub文件上傳到/root/.ssh/下面(如果沒有則創建此目錄),並重命名為:authorized_keys(如果是在Linux服務器上生成的密鑰直接執行:mv /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys),再執行:chmod 600 /root/.ssh/authorized_keys 修改權限。

2、修改/etc/ssh/sshd_config 文件,將RSAAuthentication 和 PubkeyAuthentication 后面的值都改成yes ,保存。

3、重啟sshd服務,Debian/Ubuntu執行/etc/init.d/ssh restart ;CentOS執行:/etc/init.d/sshd restart

三、客戶端測試使用密鑰登錄

1、使用putty登錄

putty使用的私鑰文件和Linux服務器或XShell的私鑰格式不同,如果使用putty的話,需要將Linux主機上生成的id_rsa文件下載的本地。運行putty壓縮包里面的puttygen.exe,選擇Conversions->Import key選擇私鑰文件id_rsa,輸入密鑰文件的密碼,會出現如下界面:

點擊“Save Private Key”,將私鑰保存為id_rsa.ppk

運行putty,在Host Name填寫:root@主機名或ip

如果設置了密鑰密碼,出現:Passphrase for key "imported-openssh-key"時輸入密鑰密碼。

如果設置沒問題就會登錄成功,出現用戶提示符。

2、XShell登錄

運行XShell,選擇菜單File->New,按如下提示填寫:

打開創建好的Session

如果設置沒問題就會登錄成功,出現用戶提示符。

3、Linux客戶端登錄測試

在Linux客戶端執行:chmod 600 /root/id_rsa 再執行:ssh root@www.vpser.net -i /root/id_rsa /root/id_rsa為私鑰文件,第一次鏈接可能會提示確認,輸入yes即可,再按提示輸入密鑰密碼,沒有問題就會出現用戶提示符。

四、修改遠程Linux服務器sshd服務配置

1、修改/etc/ssh/sshd_config 文件

將PasswordAuthentication yes 修改成 PasswordAuthentication no

2、重啟sshd服務

Debian/Ubuntu執行/etc/init.d/ssh restart ;CentOS執行:/etc/init.d/sshd restart。

ok,設置完成。

再提醒一下一定要保存好Putty私鑰文件id_rsa.ppk或Linux服務器下載下來的id_rsa私鑰文件。

原創文章,謝絕轉載!

>>轉載請注明出處:VPS偵探 本文鏈接地址:http://www.vpser.net/security/linux-ssh-authorized-keys-login.html

 



 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM