1. 程式人生 > >ssh登入原理以及ssh免密碼登陸

ssh登入原理以及ssh免密碼登陸

ssh-agent是一種控制用來儲存公鑰身份驗證所使用的私鑰的程式。ssh-agent在X會話或登入會話之初啟動,所有其他視窗或程式則以客戶端程式的身份啟動並加入到ssh-agent程式中。通過使用環境變數,可定位代理並在登入到其他使用ssh機器上時使用代理自動進行身份驗證。 

其實ssh-agent就是一個金鑰管理器,執行ssh-agent以後,使用ssh-add將私鑰交給ssh-agent保管,其他程式需要身份驗證的時候可以將驗證申請交給ssh-agent來完成整個認證過程。通過使用ssh-agent就可以很方便的在不的主機間進行漫遊了,假如我們手頭有三臺server:host1、host2、host3且每臺server上到儲存了本機(supersun.biz)的公鑰,因此我可以通過公鑰認證登入到每臺主機:

[
[email protected]
~]#ssh host1
Last login: Thu Oct 18 13:56:08 2007 from supersun
[[email protected] root]# 

[[email protected] ~]#ssh host2
Last login: Fri Oct 12 11:14:44 2007 from supersun
[[email protected] root]# 


[[email protected] ~]#ssh host3
Last login: Sat Sep 29 10:21:32 2007 from supersun
[
[email protected]
root]# 


但是這三臺server之間並沒有並沒有儲存彼此的公鑰,而且我也不可能將自己的私鑰存放到server上(不安全),因此彼此之間沒有公鑰進 行認證(可以密碼認證,但是這樣慢,經常輸密碼,煩且密碼太多容易忘)。但是如果我們啟用ssh-agent,問題就可以迎刃而解了。 


啟用ssh-agent:


[[email protected] ~]#eval `ssh-agent `
Agent pid 3526


新增私鑰:


[[email protected] ~]#ssh-add
Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)


編緝/etc/ssh/ssh_config檔案:ForwardAgent yes


讓ssh-agent能轉發,這樣就可以這樣登陸了:supersun.biz---->host1---->host2,到此請注意,如果host1上沒有設定轉發的話就登不了host3了,設定了轉發後可以進一步跳到rs3上了。 


[
[email protected]
~]#ssh host1
Last login: Thu Oct 18 16:21:29 2007 from supersun
[[email protected] root]# vi /etc/ssh/ssh_config 
[[email protected] root]# ssh host2
Last login: Thu Oct 18 16:20:28 2007 from supersun
[[email protected] root]# ssh host3
Last login: Thu Oct 18 16:10:39 2007 from supersun
[[email protected] root]# 


到這裡基本上已經大功告成了,還有一個小問題那就是總不能每次都手動執行ssh-agent吧!最省時的方法就是將它寫到profile中去:


為了不把profile搞亂,我在在/etc/profile.d下建一個ssh-agent.sh檔案:


[[email protected] ~]#cat /etc/profile.d/ssh-agent.sh 
#!/bin/sh


if [ -f ~/.agent.env ]; then
. ~/.agent.env >/dev/null
if ! kill -0 $SSH_AGENT_PID >/dev/null 2>&1; then
echo "Stale agent file found. Spawning new agent..."
eval `ssh-agent |tee ~/.agent.env`
ssh-add
fi
else
echo "Starting ssh-agent..."
eval `ssh-agent |tee ~/.agent.env`
ssh-add
fi

這樣就不會生成太多的ssh-agent程式了,而且支援GUI環境。當我開啟一個終端的話:

Stale agent file found. Spawning new agent...
Agent pid 2543
Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)
[[email protected] ~]#

添加了新的金鑰。

相關推薦

ssh登入原理以及ssh密碼登陸

ssh-agent是一種控制用來儲存公鑰身份驗證所使用的私鑰的程式。ssh-agent在X會話或登入會話之初啟動,所有其他視窗或程式則以客戶端程式的身份啟動並加入到ssh-agent程式中。通過使用環境變數,可定位代理並在登入到其他使用ssh機器上時使用代理自動進行身份驗證。  其實ssh-agent就是一個

一臺Linux電腦連線另一臺Linux(SSH實現linux之間的密碼登陸)

首先檢視是否安裝ssh服務:systemctl status sshd.service    啟動服務:systemctl start sshd.service    重啟服務:systemctl restart sshd.service    開機自啟:systemctl

ssh和ssh2之間的密碼登陸詳解

SSH為Secure Shell的縮寫,由IETF的網路工作小組(Network Working Group)所制定;SSH為建立在應用層和傳輸層基礎上的安全協議。在維基百科上,有關於SSH的詳細詞條,但通俗點說,SSH能夠讓一個客戶端安全的登入上一個伺服器上進行管理操作。所以,忘掉FTP、POP和Tel

ubuntu16.04叢集之間配置SSH密碼登陸原理詳解

環境 vmware14.1虛擬機器中三臺ubuntu16.04 ip地址對映關係:如下 127.0.0.1 localhost 192.168.184.131 vm-01 192.168.184.132 vm-02 192.168.184.133

ssh登入原理密碼登入

先驗知識 ssh登入需要用到公鑰、祕鑰,它們用於對文字內容進行加密或解密。通常用RSA加密方式,其是一種對稱加密,由公鑰加密的內容私鑰可解密、由私鑰加密的內容公鑰也可解密。   通過ssh登入遠端主機通常有兩種登入方式: 1、輸密碼登入:每次登入都要輸密碼。內部原理:登入時服務端傳送服務端自

ssh密碼登陸及其原理

then 文件中 id_rsa 遠程 wan 技術分享 finger 應用層 指紋 ssh 無密碼登錄要使用公鑰與私鑰。linux下可以用用ssh-keygen生成公鑰/私鑰對,下面我以CentOS為例。有機器A(192.168.1.155),B(192.168.1.181

Jenkins進階系列之——09配置Linux系統ssh密碼登陸

dom pub tar finger cnblogs pan 改變 art home ssh認證的完整描述:https://www.ibm.com/developerworks/cn/linux/security/openssh/part1/ 說明:點我去查看 今天我們只說

ssh 密碼登陸

密碼 有時 刪除 內容 需要 機器 文檔 authorize 利用 服務器被登陸的時候,需要用戶提供它的密碼。 ssh [email protected]/* */ 有時人們會覺得輸入密碼比較麻煩。有時服務器是不想讓人直接登陸,但是又必須允許部分人登

配置ssh密碼登陸

grep 本機 author ins 配置ssh 數據同步 輸入 如果 id_rsa 以root賬戶為例 準備兩臺以上的Linux服務器,我這裏用的是s204,s205兩臺機器,多臺同樣的 先使用ssh登錄試一下,如果沒有安裝則需要先安裝一下 ssh s205會提示你輸

Mac客戶端CentOS服務器 SSH密碼登陸

rsa 使用 直接 oot root 下使用 bsp 密碼 cat 假定有2個服務器A(127.0.0.1)和B(192.168.0.1),A作為客戶端來登錄服務器B 1.在服務器A下使用 ssh-keygen -t ras -P ‘  會在~/.ssh目錄下‘生成公鑰(

Centos7 ssh密碼登陸

gpo id_rsa ssh免密 evel 密鑰登陸 post pan png ssh-key 摘要:安裝openssl openssl-devel 不過有些centos自帶 192.168.161.5 192.168.161.15 本版本用centos7 (192.16

Linux上實現ssh密碼登陸遠程服務器

Linux上實現ssh免密碼登陸遠程服務平常使用ssh登陸遠程服務器時,都需要使用輸入密碼,希望可以實現通過密鑰登陸而免除輸入密碼,從而可以為以後實現批量自動部署主機做好準備。 環境如下: IP地址 操作系統 服務器端 10.0.0.10 CentOS 6.5 x86 客戶端 10.0.0

ssh密碼登陸設置時bad ownership or modes for file 報錯的解決辦法

linux ssh問題:密鑰登陸時報如下錯誤:May 13 10:11:26 keep sshd[25103]: Authentication refused: bad ownership or modes for file /home/git/.ssh/authorized_keys 原因:sshd為了安全

centos ssh密碼登陸突然

終端輸入:tail /var/log/secure -n 20 發現有下面這樣一句話: Oct 16 19:52:03 master sshd[4463]: Authentication refused: bad ownership or modes for directory /roo

阿里雲3臺機器組成叢集配置ssh密碼登陸

1 查詢阿里雲局網ip 注意:需要配置同一地區同一可用區的機器 才是一個局網 2 配置好hosts檔案 3 hostname確認也是正確的 4 生成公鑰私鑰 三臺機器同樣操作  ssh-keygen -t rsa     然後一路回車 &n

使用expect實現ssh密碼登陸

使用expect向ip列表檔案中的ip主機,執行ssh-copy-id命令複製金鑰,以實現ssh免密登陸。 安裝expect yum install -y expect 生成金鑰對 ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa 指令碼 //shell指令碼內容

SSH原理和基本使用:ssh 安全配置 以及ssh key 認證登入

一、什麼是 SSH ?      SSH全稱(Secure SHell)是一種網路協議,顧名思義就是非常安全的shell,主要用於計算機間加密傳輸。早期,網際網路通訊都是基於明文通訊,一旦被截獲,內容就暴露無遺。1995年,芬蘭學者Tatu Ylonen設計

ssh 密碼登陸設定不成功

記一次centos6設定免密碼登陸設定不成功的解決。自己挖的坑自己填。 ssh 免密碼登陸設定( 正常情況下是這樣的,設定成功後登陸主機是不需要密碼的) [[email protected] .ssh]# ssh-keygen -t rsa # 執行上面的命令直接敲3-4次回車。 Gener

ssh localhost 密碼登陸(圖解)

每次搞ssh locahost無密碼登陸都要查半天,這次記錄一下,以備不時之需 假設系統中有使用者test,屬於使用者組test, 1 首先確認能否不輸入口令就用ssh登入localhost: $ ssh localhost 輸出如下所示: 2

ssh配置密碼登陸時的許可權問題

ssh在配置免密碼登陸時,需要將登入放的公鑰放到authorized_keys中,但是有時即使填寫了也無法免密碼登陸,此時可以考慮檢視各個檔案的許可權是否正確了。 1. authorized_keys