SSH學習使用

    我們Linux服務器都是通過SSH登錄進行管理、維護的,那麼這裏我把我用SSH的一些東西記錄下來,以後方便查看了。

    一、一定要用SSH2了,不要用SSH1。

    二、SSH客戶端的問題:

            1、Win下登錄SSH服務器(字符界面),我選擇了2個程序,

            第一個是putty程序,比較有名了,而且好像是個免費的。小巧。但是一定要下載完整版本的。先到PuTTY網站去下載putty.exe, psftp.exe, puttygen.exe

         Link: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

            Binaries

            The latest release version (beta 0.60). This will generally be a version I think is reasonably likely to work well. If you have a problem with the release version, it might be worth trying out the latest development snapshot (below) to see if I've already fixed the bug, before reporting it to me. 

For Windows 95, 98, ME, NT, 2000, XP and Vista on Intel x86
PuTTY:putty.exe(or by FTP)(RSA sig)(DSA sig)
PuTTYtel:puttytel.exe(or by FTP)(RSA sig)(DSA sig)
PSCP:pscp.exe(or by FTP)(RSA sig)(DSA sig)
PSFTP:psftp.exe(or by FTP)(RSA sig)(DSA sig)
Plink:plink.exe(or by FTP)(RSA sig)(DSA sig)
Pageant:pageant.exe(or by FTP)(RSA sig)(DSA sig)
PuTTYgen:puttygen.exe(or by FTP)(RSA sig)(DSA sig)

    這裏面如果你只下載putty.exe,就可以遠程登錄了,但是有一些其它高級功能就沒有辦法使用了。所以我覺得還是儘量都下載下來吧。

    Putty不能在登錄到系統中後在命令行情況下直接和服務器上傳、下載文件。必須要通過psftp來交流文件。我用了一段時間後才發現的,原本我還以爲putty乾脆沒有辦法在客戶端和服務端直接傳遞文件呢。所以就用SecureCRT來回傳遞文件,深入使用後在網上找了一下文章發現可以通過這個psftp程序來傳遞文件,但是感覺還是要再執行一個程序,不像SecureCRT直接用命令就完成了那麼方便。呵呵,什麼時候putty也能像SecureCRT那樣傳遞文件就好了。

       2、SecureCRT 這個也是一個不錯的登錄程序,但是這個好像不是免費的。從網上找了一個破解的版本。

    爲什麼我要用SecureCRT呢。直接和服務端傳遞文件方便。用命令sz和rz就好了。sz和rz這兩個命令式Linux的一個軟件包裏的,如果你沒有安裝這個軟件包就不會有這個命令,所以一定要安裝這個軟件包了。

    yum install rzsz

   安裝上就好了。很簡單的。

三、使用密鑰方式來登錄系統

    傳統的SSH登錄系統方式就是用戶名、密碼,我現在感覺用密鑰的方式比較舒服。推薦大家學習一下用密鑰的方式來SSH登錄系統

      使用PUTTY客戶端

3.1 使用puttygen.exe生成密鑰

puttygen.exe 運行界面,點那個Generate按鈕,密鑰選擇的是SSH-2 RSA的。
使用鼠標在“key”框內移動,以獲得足夠的隨機數據供生成密鑰使用,鼠標移動的越快那個進度條就越快。
生成密鑰過程
※期間,你會看到進度條上面有個提示“Please generate some radomness by moving the mouse over the blank area.”,意思就是讓你用鼠標在空白區域隨機移動。隨着鼠標在空白區域的移動,進度條會一直走下去。停止移動鼠標,進度條也就停止了。所以,那我們要移動鼠標,直到進度條走滿爲止。
完成後的窗口如下:
保存共鑰與私鑰密鑰,也可以添加passphrase來保護你的密鑰。
其中:
引用
Key comment:是註釋,不會影響密鑰的有效性,但可作爲自己用於區別其他密鑰的參考;
Key passphrase 和 Confirm passphrase :用於保護私鑰,如果不輸入該信息,那麼任何人只要拿到該私鑰,即可無密碼登陸系統,非常危險;通常情況下,我是建議大家輸入的,但這裏爲了方便說明,暫時留空,請看後面使用的說明。
保存私鑰(私鑰是留在客戶端的。)
隨後,點擊“Save private key”保留私鑰。
如果沒有輸入Key passphrase信息,會有警告:

輸入私鑰的文件名:
※公鑰信息可以不用保留在本地的,puttygen可以從私鑰得到它,驗證時也不會用到。
拷貝公鑰信息(公鑰是放到服務端的)
上面密鑰信息窗口的“Key”框最後生成的就是公鑰信息:
點擊在新窗口中瀏覽此圖片
需要把該信息拷貝到Linux服務器的特定文件中:~/.ssh/authorized_keys,
文件名不能錯,這個文件名其實是在SSH服務端的配置文件中要求的。
其中,“~”表示對應用戶的主目錄,以root爲例。
若.ssh目錄不存在,請創建它,並把公鑰信息寫入文件中:
# mkdir ~/.ssh
# chmod 700 ~/.ssh
# vi ~/.ssh/authorized_keys
# chmod 644 ~/.ssh/authorized_keys

※請務必留意:文件和目錄的權限問題,用戶必須是將要進行認證的用戶,而權限必須是0644,也就是禁止其他人對該文件寫入信息。(否則,某些有心人把自己的公鑰寫入這裏,他也可以無密碼進來了)
因爲,通常umask是0022或0002的,所以請使用chown和chmod修改爲對應的權限咯。
 
修改openssh配置

修改/etc/ssh/sshd_config:
ChallengeResponseAuthentication no #關閉挑戰應答方式
UsePAM no #不使用PAM認證
然後重啓sshd服務

1.2 使用psftp.exe將公鑰上傳到服務器上

將公鑰上傳到服務器

打開psftp.exe,然後使用open來打開指定的主機,這裏是我虛擬機上的IP:192.168.32.227, 接着使用put命令上傳公鑰到服務器上,(注意:公鑰必須要在psftp.exe運行的當前目錄)

1.3 使用putty.exe登錄到服務器上進行設置

登錄到服務器上進行設置

使用putty.exe登錄到服務器上,將剛剛上傳的公鑰移動到/root 或用戶目錄的.ssh目錄下,我這裏是root用戶。如果沒有.ssh目錄存在,則先創建.ssh目錄。並且設置目錄權限爲所有者讀寫和執行,其他的都沒有任何權限。這一步一定要執行,否則會使密鑰無效。

[root@lvdbing.net]#mkdir .ssh
[root@lvdbing.net]#chmod 700 .ssh

然後進入.ssh目錄,執行以下命令:

[root@lvdbing.net .ssh]ssh-keygen --f Public >authorized_keys
[root@lvdbing.net .ssh]chmod 600 authorized_keys 

以上是把上傳的公鑰轉換成Openssh可以認的公鑰格式,否則使用putty.exe將連接不上。

然後也要把文件authorized_keys 權限設置爲所有者讀寫和執行,其他的都沒有任何權限(600)。這一步一定要執行,否則會使密鑰無效。

1.4 使用putty.exe測試連接
打開putty.exe
指定私鑰地址
登錄成功

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章