ssh密鑰登錄為什麼不需要密碼
A. SSH詳解-4.多個ssh公鑰
SSH詳解-1.ssh基礎知識
SSH詳解-2.ssh基本用法
SSH詳解-3.密鑰登陸
SSH詳解-4.多個ssh公鑰
前面說了利用密鑰ssh可以快速登錄,而不用每次都輸入密碼。
有時候在github和gitee中我們想用不同的密鑰登錄,或者某個伺服器我們想使用另外一個公鑰登錄。這就情況下我們就需要配置多個公鑰。
我們在生成私鑰和公鑰的默認的名稱是 id_rsa 。前面已經詳細說過密鑰登錄流程了,而密鑰登錄的時候會默認讀取 id_rsa 密鑰進行驗證。因此,我們在使用多個密鑰對的時候,必須告訴ssh哪個伺服器驗證用哪個密鑰。
在一台電腦上生成多個公鑰格式 ssh-keygen -t rsa -C 郵箱 公鑰名 ,詳細參數上一節已經說過了。
在 ~/.ssh/ 文件夾下面默認是沒有config文件的,要配置多少個ssh公鑰我們需要在該文件夾下新建一個 config 文件。
User 登錄的用戶名, IdentityFile 密鑰文件路徑, HostName 伺服器ip地址或者域名。
Host 主機名,為什麼把這個放到最後說呢?
需要注意一點配置完後應使用 ssh root@tenxun 來登錄 ,也就是說@後面的是Host不是HostName。
B. 【linux】SSH 使用密碼/公鑰遠程登錄總結
本文是筆者查閱網上資料做的總結,關於SSH原理,什麼是對稱加密和非對稱加密,本文不過多介紹。這里介紹一下SHH的工作過程、配製方法,可能出現的問題及解決方法。
說明:本文中涉及的例子,SSH客戶端為:本地主機A,SSH伺服器為:伺服器B
SSH協議採用C-S(客戶端-伺服器端)架構進行雙方的身份驗證以及數據的加密。
伺服器端組件監聽指定的埠,負責安全連接的建立、對連接方的身份認證、以及為通過身份認證的用戶建立正確的環境。
客戶端負責發起最初的TCP握手、安全連接的建立、驗證伺服器的身份與之前記錄中的一致、並將自己的驗證信息提供給伺服器。
一個SSH會話的建立過程分為兩個階段。第一階段,雙方溝通並同意建立一個加密連接通道以供後續信息傳輸用。第二階段,對請求接入的用戶進行身份驗證以確定伺服器端是否要給該用戶開放訪問許可權。
當客戶端發起TCP連接時,伺服器端返回信息說明自己支持的協議版本,如果客戶端上支持的協議與之匹配,則連接繼續。伺服器會提供自己的公共主機密鑰(public host key)以讓客戶端確認自己訪問的是正確的機器。
然後,雙方採用一種Diffie-Hellman演算法共同為該會話建立密鑰。每一方的一部分私有數據,加上來自對方的一部分公共數據,通過這種演算法計算,能夠得出完全相同的密鑰用於本次會話。
整個會話的通訊內容都使用該密鑰進行加密。這個階段使用的公鑰/私鑰對與用戶驗證身份用的SSH密鑰是完全無關的。
經典Diffie-Hellman演算法的計算步驟如下:
這個共享密鑰的加密方式被稱為二進制數據包協議(binary packet protocol)。該過程能夠讓雙方平等的參與密鑰生成的過程,而不是由單方掌握。這種共享密鑰生成的過程是安全的,雙方沒有交換過任何未經加密的信息。
生成的密鑰是對稱式密鑰,一方用於加密信息的密鑰等同於另一方用於解密信息的密鑰,而任何第三方由於不持有該密鑰,是無法解密雙方傳遞的內容的。
會話加密通道建立後,SSH開始進入用戶認證階段。
下一步,伺服器驗證用戶身份以決定是否准許其訪問。驗證有不同的方式,選擇的驗證方式取決於伺服器的支持。
最簡單的驗證是密碼驗證:伺服器要求客戶端輸入密碼,客戶端輸入的密碼經過上述的通道加密傳輸給伺服器。
雖然密碼是加密過的,然而該方法仍然不被推薦,因為用戶經常為了省事而使用過於簡單的密碼,而這類密碼很容易就能夠被自動化腳本破解。
最流行的驗證方式是SSH密鑰對,這也是當前最推薦的方式。SSH密鑰對是非對稱密鑰,私鑰和公鑰分別用於不同的功能。
公鑰用於加密,而私鑰用於解密。公鑰可以隨意上傳、共享,因為公鑰的流通並不會危及到私鑰的保密性。
SSH密鑰對的驗證過程起始於上一部分加密通道建立之後,其具體執行步驟如下:
簡單來說,伺服器端用公鑰加密信息,客戶端用私鑰解密信息以證明自己持有私鑰。該過程同時使用了對稱加密和非對稱加密,兩種方式各有自己的功用。
命令如下:
用戶名:為要登錄的伺服器B中已存在的用戶賬戶名
IP地址:為伺服器B的IP地址
-p 埠號:用來指定埠號,默認為22
第一次登錄時,會提示如下提示:
大概意思是說,你正在訪問的主機不能驗證它的真實性,它的RSA key(當前訪問主機的公鑰)指紋是怎樣的,你確定要繼續連接嗎?
輸入yes繼續,會提示,已永久把當前訪問主機的RSA key添加到了已知主機文件(用戶目錄下,.ssh 文件夾中的knwon_hosts文件)中。之後再次 SSH 登錄就不再有該提示了。
接著,輸入登錄賬戶的密碼即可。
SSH 密碼登錄,需要伺服器開啟密碼驗證許可權,編輯伺服器SSH配置命令如下:
在 sshd_config 文件中,Protocol 2 下面 #PasswordAuthentication yes,將前面的#號去掉,保存退出。
公鑰登錄,即免密碼登錄。避免的每次登錄都要輸入的麻煩,也防止了中間人攻擊。是SSH遠程登錄最常用的登錄方式。
提示輸入密鑰對名稱,直接回車,使用默認名稱即可;
提示輸入密碼(使用私鑰時,要輸入密碼),直接回車,不使用密碼即可。
首先,登錄伺服器B,在進行下面的操作。
找到 #PubkeyAuthentication yes,刪除 #號,保存退出。
重啟 ssh 服務
也可指定驗證私鑰:
本地主機A,生成密鑰對後:
sudo vim /etc/selinux/config
C. Linux免密碼SSH登錄(公鑰登錄)
SSH有兩種登錄方式, 一是口令登錄, 即常規的用戶名密碼登錄; 二是公鑰登錄, 只要在server端配置好client端的公鑰, 就可以實現免密登錄. 控制端為client端, 遠程主機為server端, 下同.
在client端輸入命令然後一路回車
運行結束以後,在client端~/.ssh/目錄下,會新生成兩個文件: id_rsa.pub 和 id_rsa 。前者是你的公鑰,後者是你的私鑰。這時再輸入如下命令,將公鑰傳送到遠程主機host上面:
server端將用戶上傳的公鑰,保存在用戶主目錄的 ~/.ssh/authorized_keys 文件中。
原本以上配置就ok了,但是OpenWrt的ssh採用的是dropbear,一種輕量級的ssh服務。需要對其進行額外配置:
大功告成 ->
SSH參考資料: SSH原理與運用(一):遠程登錄
D. ssh localhost 配置免密登陸仍需要密碼的解決方法
最近在看spark的書籍,書中第一步搭建單機spark的時候,有一個操作是設置ssh無密碼的登陸了。萬萬沒想到,在這一步就卡住了。已經成功配置了免密登陸,但是ssh localhost還是需要輸入密碼。在阿里雲香港伺服器掛掉之後,網路了兩天才找到解決方法。特此記錄。
查看日誌是分析問題中很重要的一環,因為ssh中會出現各種不同的問題,每種問題的解決方法不一樣。
ssh -vvv localhost 報的錯誤信息
日誌顯示ssh跳過了dsa的認證方式,最後只能通過密碼認證的方式。
通過查詢資料發現,ssh 7.0之後就已經默認關閉了dsa認證方式。
於是修改ssh的配置文件ssh_config,在驗證方式中加入dsa
按照教程修改完配置文件後,ssh localhost任然需要輸入密碼,查看日誌如下。·
可以看出修改過後,ssh時已經提供了DSA秘鑰,但是好像校驗沒有通過,所以最後還是進入了輸入密碼驗證的環節。
通過查閱資料和自己推理,問題可能出在服務端校驗不通過,因為伺服器端也不支持dsa這種認證方式,那就試著修改一下伺服器端的配置文件。
ssh_config 和 sshd_config 分別是ssh客戶端和伺服器端的配置文件,ssh localhost就是一個本地客戶端向本地伺服器請求的過程。
修改sshd文件後,ssh localhost還是需要密碼。就在我差點自閉的時候,看到有帖子說要重啟一下ssh伺服器。
重啟完成後,ssh localhost免密登陸成功。長舒一口氣。
後來經過測試,修改ssh配置文件不用重啟服務,但是修改sshd配置文件,是要重啟才能生效的。
據說是因為dsa是不加密的,後面都改用rsa了,遇上同樣問題的小夥伴可以自己去查一下。
``
E. [斐訊N1] 小鋼炮ssh設置密鑰加固登錄(免密登錄)
默認可以在管理界面直接添加公鑰,但是像我這種特殊狀況,在GUI後台發現無法修改,因此要手動增加。(後知後覺,可能是手賤誤刪了/root/.ssh,苦笑)
進行第二步之前建議備份S50dropbear,並設置定時20分鍾還原,以免設置錯誤導致無法登錄:
添加-p +要開啟的ssh埠 ,-s是禁止密碼登錄
所有步驟完成後,記得保留好私鑰,然後輸入 reboot 重啟
最後使用密鑰登錄:在ssh管理界面,埠輸入剛設置的,然後把保留的私鑰添加到相應的位置保存登錄即可。
F. SSH 密碼與秘鑰登錄方式
密碼登錄顧名思義極其簡單,登錄之前需要在ssh伺服器上有相應的用戶名與登錄密碼。
密碼登錄命令行:ssh username@hostname -p port
username:登錄用戶名
hostname:ssh伺服器,既可以是ip也可以是域名
port:這個為可選項,即ssh伺服器的埠,如果為空則默認埠為22
秘鑰登錄使用加密的
終端下生成秘鑰命令:ssh-keygen -t rsa(如果不輸入密碼,則不需要密碼)
生成過程中會提示輸入秘鑰文件的名稱,如果輸入為 Key,則會生成 Key 與 Key.pub 兩個文件, Key為私鑰,Key.pub為公鑰。將Key放入本機用戶目錄的 .ssh目錄下,將.ssh目錄許可權改為700
將生成的公鑰 Key.pub 上傳至目標伺服器,並將Key.pub放置於用戶目錄的.ssh目錄,同樣.ssh目錄許可權也為700
然後執行 cat Key.pub >> authorized_keys 將公鑰導入,並確定authorized_keys許可權為 600
秘鑰配置好後,可以執行 ssh -i Key username@hostname -p port
ssh 默認秘鑰為 id_rsa, 需要加上參數-i 指明秘鑰
G. 阿里雲主機ssh 免密碼登錄
阿里雲主機ssh 免密碼登錄
操作系統: CentOS 7.0 64位
CPU: 1 核
公網IP: 78.129.23.45
用戶名: root
密碼:bugaosuni
我在VMware下安裝的Ubuntu 14.04.本文的主要目的就是在Ubuntu上能夠免密碼登錄雲主機。
具體設置步驟
Ubuntu 客戶端
在該文件夾下就會產生三個文件夾:id_rsa,id_rsa.pub,know_hosts。
id_rsa:存儲私鑰,記得只能自己看哦。別人那到這個文件就完蛋蛋咯。
id_rsa.pub:存儲公鑰,用來通信加密使用,有了這個人家才能確定這是你。
scp id_ rsa.pub [email protected]:/root/.ssh/id_ rsa.pub
Note:雲主機上沒有.ssh/文件時,你要自己建立一個。
雲主機端
rm id_rsa.pub
Ubuntu 客戶端
這個時候就可以登錄雲主機了
ssh [email protected]
scp遠程拷貝文件時提示錯誤:
Warning: Permanently added '10.0.0.182' (RSA) to the list of known hosts.
Permission denied (publickey).
解決:
登錄10.0.0.182,將/etc/ssh/sshd_config文件中的PasswordAuthentication no 改為PasswordAuthentication yes
重啟sshd服務:/etc/init.d/sshd restart
問題解決。
原因:scp是基於ssh的拷貝服務,ssh在沒有密鑰登錄的情況下,禁用了密碼登錄,故出現如上錯誤。
服務端SSH 服務配置了禁止root用戶登錄策略。
處理辦法
說明:相關策略可以提高伺服器的安全性。請用戶基於安全性和易用性權衡後,再確定是否需要修改相關配置。
要解決此問題,請進行如下配置檢查和修改:
參數說明:
未配置該參數,或者將參數值配置為 yes (默認情況),都允許 root 用戶登錄。只有顯示的設置為 no 時,才會阻斷root 用戶登錄。
該參數只會影響用戶的 SSH 登錄,不影響用戶通過 管理終端 等其它方式登錄系統。
如果需要修改相關策略配置,在繼續之前建議進行文件備份。
使用 vi 等編輯器,將參數值設置為 yes,或者整個刪除或注釋(在最開頭添加 # 號)整行配置。比如:# PermitRootLogin yes
使用如下指令重啟 SSH 服務:service sshd restart
嘗試再次使用 root 用戶登錄伺服器。
出現的問題以及解決方案
當出現Permission denied (publickey,gssapi-keyex,gssapi-with-mic) 警告的時候,恭喜你,你已經離成功很近了。
遠程主機這里設為slave2,用戶為Hadoop。
本地主機設為slave1
以下都是在遠程主機slave2上的配置,使得slave1可以免密碼連接到slave2上。如果想免密碼互聯,原理一樣的,在slave1上也這么配置即可!
(1)首先:配置ssh伺服器配置文件。
在root 用戶下才能配置。
vi /etc/ssh/sshd_config
許可權設為no:
如果前面有# 號,將#號去掉,之後將yes修改為no。
修改之後為:
PermitRootLogin no
UsePAM no
PasswordAuthentication no
許可權設為yes:
RSAAuthentication yes
PubkeyAuthentication yes
(2)重啟sshd服務
systemctl restart sshd.service
systemctl status sshd.service #查看ssh服務的狀態
正常情況下應該是Active:active(running)
(3)修改文件夾以及文件的許可權。
(4)在slave1上進行測試
ssh slave2
今天處理 ssh連接至 ubuntu 伺服器時,提示以下錯誤:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
da:f7:3e:ba:f7:00:e6:44:76:f2:58:6e:48:******.
Please contact your system administrator.
Add correct host key in /用戶home目錄/.ssh/known_hosts to get rid of this message.
Offending RSA key in /用戶home目錄/.ssh/known_hosts:1
RSA host key for ip地址 has changed and you have requested strict checking.
Host key verification failed.
經過google,出現這個問題的原因是,第一次使用SSH連接時,會生成一個認證,儲存在客戶端的known_hosts中。
可使用以下指令查看:
ssh-keygen -l -f ~/.ssh/known_hosts
由於伺服器重新安裝系統了,所以會出現以上錯誤。
解決辦法
ssh-keygen -R 伺服器端的ip地址
會出現以下提示:
/用戶home目錄/.ssh/known_hosts updated.
Original contents retained as /用戶home目錄/.ssh/known_hosts.old
重新連線,出現以下提示:
The authenticity of host '192.168.3.10 (192.168.3.10)' can't be established.
RSA key fingerprint is da:f7:3e:ba:f7:00:e6:44:76:f2:58:6e:48:****.
Are you sure you want to continue connecting (yes/no)?
H. SSH詳解-3.密鑰登陸
SSH詳解-1.ssh基礎知識
SSH詳解-2.ssh基本用法
SSH詳解-3.密鑰登陸
SSH詳解-4.多個ssh公鑰
在上一篇中我們了解到了ssh基本用法,ssh通過密碼進行登錄。密碼登錄存在很多問題。密碼太簡單,又不安全。密碼太復雜,不容易記,而且每次登錄都要輸入很麻煩。於是就有了密鑰登陸。
什麼是密鑰(key)?
ssh密鑰登錄採用的是 非對稱加密 。
非對稱密鑰加密系統,又稱公鑰密鑰加密。它需要使用不同的密鑰來分別完成加密和解密操作,一個公開發布,即公開密鑰(public key)和,另一個由用戶自己秘密保存,即私用密鑰(private key)。
如果數據使用公鑰加密,那麼只有使用對應的私鑰才能解密,其他密鑰都不行;反過來,如果使用私鑰加密(這個過程一般稱為「簽名」),也只有使用對應的公鑰解密。
了解完密鑰後,接下來看看密鑰登錄的過程,SSH 密鑰登錄分為以下的步驟。
第零步,准備步驟客戶端通過 ssh-keygen 生成自己的公鑰和私鑰,並將公鑰放入遠程伺服器的指定位置。
第一步,用戶客戶端向伺服器發起SSH登錄的請求。
第二步,伺服器收到用戶SSH登錄的請求,伺服器生成一些隨機數據發送給客戶端。
第三步,客戶端接收到伺服器發過來的數據,客戶端使用私鑰對數據進行簽名後再返回給伺服器。
第四步,伺服器收到客戶端加密後的數據,使用對應公鑰進行解密。然後判斷解密後的數據是否與原始數據一致,如果一致就允許用戶登錄。
ssh-keygen 是OpenSSH提供的一個命令行工具,用於生成密鑰登錄所需的公鑰和私鑰。
在上面的例子中,我使用了-t參數來指定加密演算法,一遍會選擇rsa或者dsa。
第一個問題,問我要保存在哪?(直接Enter默認會保存在~/.ssh/id_rsa中)因為我之前已經生成過密鑰了,我就保存在tenxun裡面。
第二個問題,詢問是否要為私鑰文件設定密碼保護(passphrase)。這樣的話,即使入侵者拿到私鑰,還是需要破解密碼。如果為了方便,不想設定密碼保護,可以直接按回車鍵,密碼就會為空。
最後,就會生成私鑰和公鑰,屏幕上還會給出公鑰的指紋,以及當前的用戶名和主機名作為注釋,用來識別密鑰的來源。
從上面的公鑰中我們可以看到末尾的公鑰注釋 23696@DESKTOP-GKRBCVI
公鑰注釋可以用來識別不同的公鑰,表示這是哪台主機(DESKTOP-GKRBCVI)的哪個用戶(username)的公鑰。
注意 ,公鑰只有一行。因為它太長了,顯示的時候可能自動換行了。
OpenSSH 規定,用戶公鑰保存在伺服器的 ~/.ssh/authorized_keys 文件。你要以哪個用戶的身份登錄到伺服器,密鑰就必須保存在該用戶主目錄的~/.ssh/authorized_keys文件。只要把公鑰添加到這個文件之中,就相當於公鑰上傳到伺服器了。每個公鑰占據一行。如果該文件不存在,可以手動創建。
-i 指定要上傳公鑰(公鑰文件可以不指定路徑和 .pub 後綴名),user是所要登錄的用戶名,hostname是主機名,這兩個參數與ssh 登錄命令是一致。
特別注意 ,不是把公鑰上傳上去就行了,還需要把 authorized_keys 文件的許可權要設為644,即只有文件所有者才能寫。如果許可權設置不對,SSH伺服器可能會拒絕讀取該文件,導緻密鑰登錄失效,登錄的時候還需要輸入密碼。
提到輸入密碼,如果再生成公鑰和私鑰的時候設置了密碼,使用密鑰登錄的時候也需要輸入私鑰的密碼,這樣可以防止他人非法竊取了私鑰。
私鑰設置了密碼以後,每次使用都必須輸入私鑰密碼,這個問題可以使用 ssh-agent 命令解決。
網路-密鑰
Git - 生成 SSH 公鑰 (git-scm.com)
ssh(1) - OpenBSD manual pages
I. ssh免密碼登陸及其原理
[TOC]
ssh 無密碼登錄要使用公鑰與私鑰。linux下可以用用ssh-keygen生成公鑰/私鑰對,下面以CentOS為例。有機器A(192.168.64.21),B(192.168.64.22)。
目標:A通過ssh免密碼登錄到B
特意強調,使用參數可以省去生成公鑰/私鑰的回車步驟
備註:
第一次登錄需輸入yes,現在A機可以無密碼登錄B機了,B登陸A,也同樣,在B中生成公鑰和私鑰對,將公鑰寫入authorized_keys中,然後同步A、B中的authorized_keys,使其一致就ok了。
也即就是:登錄的機子有私鑰,被登錄的機子要有登錄機子的公鑰,這個公鑰/私鑰對一般在私鑰宿主機產生。上面是用rsa演算法(不對稱加密演算法)的公鑰/私鑰對,當然也可以用dsa(對稱加密演算法:對應的文件是id_dsa,id_dsa.pub)
SSH是為建立在應用層和傳輸層基礎上的安全協議( OSI七層與TCP/IP五層網路架構詳解 )。SSH 是目前較可靠,專為遠程登錄會話和其他網路服務提供安全性的協議。利用SSH 協議可以有效防止遠程管理過程中的信息泄露問題。
從客戶端來看,SSH提供兩種級別的安全驗證:
只要知道帳號和口令,就可以登錄到遠程主機。所有傳輸的數據都會被加密,但缺點是:不能保證你正在連接的伺服器就是你想連接的伺服器。以下是登錄驗證流程:
當第一次鏈接遠程主機時,會提示你當前主機的」公鑰指紋」,詢問你是否繼續,如果選擇繼續後就可以輸入密碼進行登錄了,當遠程的主機接受以後,該台伺服器的公鑰就會保存到~/.ssh/known_hosts文件中。
這種驗證的前提是客戶端需要生成一對密鑰,將公鑰放到需訪問的遠程伺服器。這種驗證比上一種的好處是,不能仿冒真正的伺服器,因為要仿冒必須拿到客戶端生成的公鑰。缺點就是驗證等待過程稍長些。
1、在客戶端打開終端,執行 ssh-keygen ,該命令會默認在 ~/.ssh/ 目錄下創建 id_rsa 、 id_rsa.pub 兩個文件,分別為你的公鑰和私鑰
2、將公鑰 id_rsa.pub 文件拷貝到伺服器端的 ~/.ssh/authorized_keys 文件中,可通過scp拷貝
A要免密碼登錄到B,B首先要擁有A的公鑰,然後B要做一次加密驗證。非對稱加密,公鑰加密的密文不能公鑰解開,只能私鑰解開
ssh-agent
ssh-agent是密鑰管理器,是一種控制用來保存公鑰身份驗證所使用的私鑰的程序
運行ssh-agent以後,使用ssh-add將私鑰交給ssh-agent保管,其他程序需要身份驗證的時候可以將驗證申請交給ssh-agent來完成整個認證過程
ssh-agent是管理多個ssh key的代理,受管理的私鑰通過ssh-add來添加
好處1:不用重復輸入密碼
用 ssh-add 添加私鑰時,如果私鑰有密碼的話,照例會被要求輸入一次密碼,在這之後ssh-agent可直接使用該私鑰,無需再次密碼認證。
好處2:不用到處部署私鑰
假設私鑰分別可以登錄同一內網的主機 A 和主機 B,出於一些原因,不能直接登錄 B。可以通過在 A 上部署私鑰或者設置 Forwarding(轉發) 登錄 B,也可以轉發認證代理連接在 A 上面使用ssh-agent私鑰登錄 B;可以在A上直接sftp傳文件到B上。
如這邊有一台機器是local,能通過公鑰直接登陸server1和server2。server1和server2之間無公鑰登陸。
現在要在server1上直接登陸server2,在local上執行
執行了之後就將私鑰給ssh-agent保管了,server1上面登陸server2的時候,需要私鑰驗證的時候直接找ssh-agent要就可以了
接下來登陸server1,注意-A
可以發現server1上多了/tmp/ssh-xxxxxxxxx/agent.xxxxx的socket,之後神奇的事發生了,在 server1上可直接進server2,只需執行如下命令,如果加了-A則可以繼續ssh forwarding(轉發) ,以至無限的機器forwarding。
ssh (-A) server2
同樣的原理可以試一下sftp, scp等基於ssh的命令。
如運行ssh-add,遇到 Could not open a connection to your authentication agent.。
解決: 需要ssh-agent啟動bash,或者說把bash掛到ssh-agent下面。
1 ssh免密碼登陸及其原理