茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1670172 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
HoneyMoon_Day3_00096.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

小企鵝開談 : [分享]如何免用密碼登入ssh伺服器?

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[分享]如何免用密碼登入ssh伺服器?
如何免用密碼登入ssh伺服器?
雖然說應該已經很老生常談了, 但是為了怕我自己忘掉. 註記一下.

我是參考這篇文章的:

Getting started with SSH - Kimmo Suominen

首先, 你需要確定已經在兩台機器上都已經安裝了ssh, 而且被登入的那台已經執行sshd, 可以被登入了.

接下來, 在local執行以下指令產生dsa key:
[code:1:5c99c7d84a]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/jouston/.ssh/id_rsa): [RETURN]
Enter passphrase (empty for no passphrase): [RETURN]
Enter same passphrase again: [RETURN]
Your identification has been saved in /home/jouston/.ssh/id_rsa.
Your public key has been saved in /home/jouston/.ssh/id_rsa.pub.
The key fingerprint is:
aa:aa:aa:......:aa jouston@jouston.no-ip.com[/code:1:5c99c7d84a]

基本上只需要連續按幾次[RETURN](就是鍵盤的[ENTER]鍵)

好了, 我們做到這一步已經弄到key了. 接下來需要把dsa.pub複製到遠端的伺服器:

[code:1:5c99c7d84a]# scp ~/.ssh/dsa.pub 10.1.1.1:.ssh/authorized_keys[/code:1:5c99c7d84a]
搞定收工.

另外, 如果有多台機器要這樣免密碼登入的話, 你可以把後來的key在遠端機器那裡這麼作:

[code:1:5c99c7d84a]# cat dsa.pub >> authorized_keys[/code:1:5c99c7d84a]

直接附加上去就可以了
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]兩行指令搞定 Linux SSH 登入免密碼
[超易] 兩行指令搞定 Linux SSH登入免密碼

用ssh登入通常需要密碼,有些情況下SSH不想要輸入密碼,(例如:想要寫script進行ssh遠端操作,一來ssh連線輸入密碼的地方又必須是interactive的沒辦法在script裡面寫密碼,二來是密碼用明碼紀錄在script實在是不大安全)。本篇用最快速的方式介紹SSH免登入的設定方式,本次要介紹的方式就是在Client端產生一組金鑰,然後把把公開金鑰複製到Server的信任名單中。
關鍵知識
其實關鍵點只有下面這兩點(注意,這兩點所說的檔案是放在兩台不同的主機喔):
要連接ssh的client端必須產生一組主機使用者的金鑰組。金鑰組可以在~/.ssh中找到,檔名是id_rsa(私鑰)、id_rsa.pub(公鑰)。(ps. rsa是加密演算法的名子,也可能利用其他的演算法對金鑰加密,如dsa等)。如果沒有產生金鑰組則必須產生一組,方法詳見Step1。一般來說,公鑰的檔名會像是這樣:
    ~/.ssh/id_rsa.pub

把公鑰複製到Server端的信任名單中。一般來說會放在下面檔案中:
    ~/.ssh/authorized_keys

後面的範例是從金鑰產生到匯入信任清單的示範,如果有需要的話可以參考。
Step 1. 在Client端產生金鑰組
使用下面指令就可以產生金鑰,所有設定都用預設的就可以了,不需要特別設置。特別注意的是"Enter passphrase"的地方請直接壓enter,這樣才能不用輸入密碼。
    ssh-keygen -t rsa

金鑰組檔案會預設放在~/.ssh/id_rsa是私鑰(private key)、~/.ssh/id_rsa.pub是公鑰(public key)。金鑰組務必保存好權限不要開太大,否則會造成安全性的問題。
2. 將公鑰的內容放置在Server的信任清單中
只要在client端下下面這個指令,這樣金鑰就會輸入進Server的信任清單中了。實在是很簡單吧。
    cat ~/.ssh/id_rsa.pub | ssh server-user@server-host “cat >> ~/.ssh/authorized_keys"

另外特別還是要補充一下,因為金鑰如果可供寫入的話十分危險。所以許多人會將 ~/.ssh裡面的id_rsa.pub id_rsa authorized_keys三個檔案設定成唯獨,所以如果不成功的話,可能是server端的user把authorized_keys設定成唯獨。所以可以用下面這個指令先把authorized_keys檔案的讀寫先打開再下Step2的命令:
    ssh server-user@server-host “chmod 600 ~/.ssh/authorized_keys"

設定完畢後記得再把權限改回來
    ssh server-user@server-host “chmod 400 ~/.ssh/authorized_keys"


原文出處:[超易] 兩行指令搞定 Linux SSH登入免密碼 - LinXblog
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]不用打密碼登入 Linux 設定教學,安全又方便

這裡介紹 SSH 公開金鑰認證(Public Key Authentication)的使用方式,讓你不用打密碼就可以直接登入 Linux,既安全又方便。

如果你的 Linux 伺服器放在網際網路上,而且有開啟 SSH 登入的服務,這樣的情況一般都會建議使用公開金鑰認證的登入方式取代一般的密碼,這樣可以讓伺服器更安全也更方便。

Linux Client

如果你的 client 電腦同樣也是 Linux(也就是以 Linux 的電腦登入 Linux 伺服器),那麼就可以依照以下的步驟來設定。

Step 1
如果要在 Linux 上產生 SSH 登入用的金鑰,可以使用 ssh-keygen 這個指令。在建立金鑰之前,要先建立 ~/.ssh 這個目錄,並設定正確的權限:


mkdir -p ~/.ssh
chmod 700 ~/.ssh

然後以 ssh-keygen 產生金鑰:

ssh-keygen

在產生金鑰的過程中,會詢問一些問題,對於一般的使用者而言,全部都使用預設值(直接按下 Enter 鍵)即可。


Generating public/private rsa key pair.
Enter file in which to save the key (/home/seal/.ssh/id_rsa):

首先指定金鑰儲存的位置,使用預設值即可,直接按下 Enter 鍵。

Enter passphrase (empty for no passphrase):

指定金鑰保護密碼,如果有設定密碼的話,以後每次使用都要輸入密碼,除你需要非常高的安全性,否則就不用設定了,直接按下 Enter 鍵即可。

Enter same passphrase again:

再次輸入密碼,直接按下 Enter 鍵,接著就會產生金鑰了。


Your identification has been saved in /home/seal/.ssh/id_rsa.
Your public key has been saved in /home/seal/.ssh/id_rsa.pub.
The key fingerprint is:
c7:61:98:72:02:91:94:db:12:96:05:9d:59:91:aa:25 seal@seal-desktop
The key's randomart image is:
+--[ RSA 2048]----+
| .=O.+oo |
| *.+ .o |
| . +o.+ o |
| E ++ o . |
| = S o |
| . . |
| |
| |
| |
+-----------------+

這裡會顯示金鑰的指紋(fingerprint)與 randomart,而產生的金鑰會有兩個檔案:

  • id_rsa.pub:公開金鑰(public key),這是可以對外公開的金鑰,之後要將它放在遠端的 Linux 伺服器上作認證使用。
  • id_rsa:私密金鑰(private key),這是要保護好的金鑰,它等同於你的 Linux 密碼,放在自己的電腦中。

Step 2
將產生的 id_rsa.pub 這個公開金鑰複製到 Linux 伺服器上的 ~/.ssh/authorized_keys 檔案中:

ssh USER@HOST 'mkdir -p ~/.ssh;cat >> ~/.ssh/authorized_keys' < ~/.ssh/id_rsa.pub

如果不想要執行這麼長的指令,也可以用 ssh-copy-id 的方式:

ssh-copy-id USER@HOST

它預設會將 ~/.ssh/id_rsa.pub 這個公開金鑰複製到伺服器上,若要指定使用的金鑰,可以使用 -i 參數:

ssh-copy-id -i ~/.ssh/id_rsa.pub USER@HOST

將公開金鑰放在 Linux 伺服器上之後,就可以不用打密碼登入 Linux 了:

ssh USER@HOST

Linux Server

在 Linux 伺服器的部份,如果要提高安全性,可以在伺服器上的 /etc/ssh/sshd_config 中修改以下的設定,停用密碼認證的登入方式,只允許金鑰認證:


PasswordAuthentication no
PubkeyAuthentication yes

這樣可以避免網路上一些亂猜密碼的攻擊。不過使用這樣的方式要先留意自己的金鑰是否設定正確,確認可以不需要密碼登入之後才進行這樣的設定,否則停用密碼登入之後,如果沒有金鑰或是沒有將公開金鑰放在伺服器上,就會完全無法登入該 Linux 伺服器。最後記得重新啟動 sshd:

/etc/init.d/sshd restart

參考資料: Ubuntu Help DigitalOcean


原文出處:SSH 公開金鑰認證:不用打密碼登入 Linux 設定教學,安全又方便 - G. T. Wang
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]在 Windows 使用「非對稱金鑰」來遠端登入 SSH 的方法

在 Windows 使用「非對稱金鑰」來遠端登入 SSH 的方法

在 Linux Server 下使用 SSH 的「非對稱金鑰」來進行遠端登入的方式相信大家應該都不陌生 (沒實做過的可參考 鳥哥study-area 的文件),下面我所要介紹的是在 Windows 下使用金鑰來遠端登入 SSH 的方法。

開始之前,先說一下「非對稱金鑰」:

「非對稱金鑰」是一種加密機制,由用戶端以特定的加密演算法產生兩把「非對稱」金鑰: 即「公鑰 (Public-Key)」與「私鑰 (Private-Key)」。然後我們會把「私鑰」留在自己的電腦,再把「公鑰」傳送到遠端主機,當兩把金鑰碰在一起就會進行加解密比對,以確認是否彼此的身份是可以信任的,藉以執行特定的作業。

說得更簡單一點,與其說是「公鑰」與「私鑰」,不如說是「鎖頭」與「鑰匙」,由我自己來打造一組鎖頭及鑰匙,我把這個鎖頭裝在一個門上,然後我就可以用我的這一把鑰匙來打開這扇門了! 同時呢,我也可以把相同的鎖頭裝在很多的門上,那我就可以用這一把鑰匙來開啟很多門了…這樣子的概念是否有比較清楚了呢?!

以下我們的目的是要用「非對稱金鑰系統」的機制,從 Windows 登入 Linux 主機,下面的步驟所要使用的軟體都是由 PuTTY 所提供的工具程式,請先下載存放在自己的電腦:

產生公鑰與私鑰

執行 puttygen.exe:

  1. 先在 Parameters 的「Type of key to generate」欄位選「SSH-2 DSA」。
  2. 如果你希望加密更多的位元數,可更改「Number of bits in a generated key」為「2048」或更多。
  3. 然後按 [Generate],就會開始產生金鑰。在產生金鑰的同時,請隨意移動你的滑鼠,做為隨機亂數的取用。

金鑰產生完畢,如下圖所示:

  1. 在「Public key for pasting into OpenSSH authorized_keys file」裡那一堆的奇怪的字串就是「公鑰」,請直接複製裡面的內容,然後貼到 Linux 主機上的 /home/登入帳號/.ssh/authorized_keys
    檔案 (請注意,這個檔案的權限必須為 644)。
  2. 然後按 [Save private key] 按鈕,將「私鑰」儲存在你的電腦。與私鑰比較有關的是「Key passphrase」及「Confirm passphrase」這兩個欄位,這兩個欄位是用來設定私鑰的密碼,如果有設定的話,在每次要載入私鑰時就會詢問你這個密碼,可以讓你的私鑰比較不容易被盜用。
  3. 另外還有一個 [Save public key],按下去之後就可以把「公鑰」再備份一支到你的電腦 (但要使用這個備份的公鑰時,必須把裡面的一些註解刪掉才行)。

使用私鑰進行遠端登入

產生完上面的兩把金鑰,並將公鑰放到遠端的主機之後,接下來就是如何在本地端載入私鑰的問題了。因為 Windows 並不像 Linux 有一個固定存放私鑰的地方,所以每次使用時都要各別載入,而且通常只能載入一個 (例如 PieTTY 是從 [選項] → [詳細設定] → Connection → SSH → Auth 裡的「Private key file for authentication」載入),並且只能在該程式使用。

所以接下來我們要執行 pageant.exe,這是「私鑰」的代理程式,一執行這個程式,他會常駐在工作列的「通知區」,請在 pageant 的圖示上點滑鼠右鍵選「Add Key」,將你的私鑰檔案載入。

在加私鑰時,如果你有設定「Key passphrase」,它就會跳出對話框叫你輸入密碼。這個代理程式可以同時讓你載入很多私鑰,並且所有同類型的程式都可以直接使用。

現在你就可以用你常用的 SSH 程式 ( PieTTY, PuTTY…) 來登入到 Linux 主機看看,正確的話,只要輸入帳號,不用再打密碼就可以登入了。

補充…

使用 TortoiseSVN 配合 SSH

如果你有在使用
SVN 的話 (假設 SVN Server 是架在 Linux 主機,用戶端為 Windows,用戶端有安裝 TortoiseSVN),剛好 TortoiseSVN 就有提供 SVN + SSH 的通訊協定來傳輸資料。

如果你的專案是以 SVN + SSH 做為通訊協定,每次你在執行任何 TortoiseSVN 的傳輸動作時,它就會不厭其煩的跟你詢問遠端主機的密碼。

如果想要依照「非對稱金鑰」來與 Linux 主機做登入驗證,則你需要到 TortoiseSVN 的參數設定裡的「Dialogs 2」將「Recurse into unversioned folders」及「Contact the repository on startup」這兩個選項都打勾,如下圖所示:

這樣應該就可以解決密碼詢問的問題了。


原文出處: 在 Windows 使用「非對稱金鑰」來遠端登入 SSH 的方法 | Vixual
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]解決 SSH 裡 " Server Refused Our Key " 的方法

解決SSH裡"Server Refused Our Key"的方法

最近想用 Public Key Authentication 方法連接公司的 server,可是一直都碰上 “Server Refused Our Key" 的問題。經過一輪 Google 後,大致明白原來問題出於用 puttygen 產生的 Public Key 裡頭有 OpenSSH 認不出的一堆無謂文字;所以別要用 puttygen 裡 “Save public key" button 來產生 Public Key,而改為手動儲存。

以下是手動產生 Public Key 的方法:

1) 用 puttygen 產生 keys

2) 儲存 Private Key 在本機任何一個安全的地方(說完也覺得有點多餘)

3) 在 puttygen 頂部, “Public key for pasting into OpenSSH authorized_keys file" 下面的方格裡,那堆以 “ssh-rsa …" 為首的 codes 直接 Copy and paste 到一個純文字檔案裡

4) 在純文字檔案裡,把每行的 new line character 刪除掉,也就是說,讓整段 code 都在同一行裡

5) 把純文字檔儲存,檔案名稱可隨意(當然你不會想用中文檔名)。這裡就假設為 id_dsa

6) 用你喜歡的方法,把 id_dsa 抄到 server 上,home directory 下的 .ssh

7) cat id_dsa >> authorized_keys。如果你本來就沒有 authorized_keys,就改為 cat > authorized_keys

8) 要留意整個 .ssh 的 persmission,為了方便,我會把 .ssh 及以下的 sub-directories 改為700

至此,你的 Public Key 已經完成了,現在你可以再試試用 Putty 連線你的 server 試試看了。

解決SSH裡"Server Refused Our Key"的方法 | com.wp.jerrykwok
前一個主題 | 下一個主題 | 頁首 | | |



Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|