實現安全的免密碼ssh登入

2021-04-13 04:46:26 字數 1280 閱讀 5047

實現安全的免密碼ssh登入

1、用ssh-keygen生成一對公私鑰,命令如下

ssh-keygen -t rsa

回車會讓你輸入存放公私鑰的路徑和名稱,預設存放在~/.ssh/目錄下

接下來輸入乙個口令,用來保護這個私鑰,如果此處你輸入了口令,則在連線你上傳公鑰的機器時會問你要這個密碼的,如果口令為空,就可以直接連線上,沒有口令很不安全的,一旦有人複製了你的passphrase,那麼他就可以不用密碼登入上了。

2、把生成的公鑰上傳到你想連線伺服器上,並且將其內容追加到乙個叫~/.ssh/authorized_keys的檔案裡,命令如下

cat 公鑰檔案 | ssh 使用者@192.168.1.9 "cat - >> ~/.ssh/authorized_keys"

(注意,如果不存在~/.ssh資料夾,請手工建立)

如果在第一步中沒有輸入口令,至此就可以實現無需輸入密碼即可登陸ssh伺服器拉,反之,你用ssh 使用者@伺服器位址,則會提示你輸入私鑰的口令,輸入正確的口令,即可登陸,你也可以直接回車,這時會提示你輸入伺服器的密碼。

到現在你還沒有實現真正的無密碼登陸,不過可以使用ssh-agent來自動提供私鑰,命令如下

eval `ssh-agent`

ssh-add

這裡會提示輸入一次passphrase,這裡輸入了正確的口令後,再在本session中來用ssh就不需要在輸入口令,但是重新開啟乙個終端,在那裡面使用ssh還是需要輸入口令,如果想復用已經存在的ssh-agent,可以用乙個簡單的perl指令碼來實現,指令碼內容如下:

#!/usr/bin/env perl

# author: jianingy

# 2007/06/24

use strict;

my $exist;

my @dirs = grep glob "/tmp/ssh-*";

foreach (@dirs) /agent.*");

next unless (@socks);

foreach (@socks) }}

if ($exist) else

用toucth建立乙個檔案,名為ssh-attach(名字隨便叫),把上面的內容加進去,修改該檔案的許可權,chmod 755 ssh-attact,把它放到/usr/bin小,然後在.bashrc中加上下面一行,

eval `ssh-attac`

至此,就是實現了免密碼ssh登陸了(當然至少還是需要輸入一次口令的(passphrase))

(注:本文參照 http://www.jianingy.com/ssh-pass.html)

SSH實現免密碼登入

因本人水平有限,文章中存在不足,錯誤之處,還望指正 在日常操作中,我們經常需要在遠端linux主機中使用ssh進行操作。來回輸入使用者名稱,密碼變得非常繁瑣,我們希望在操作中減少使用者名稱,密碼輸入的過程,這是我們就可以使用ssh來實現免密碼登入。步驟實驗環境 client redhat 6.3 s...

ssh 免密碼登入

ssh 無密碼登入要使用公鑰與私鑰。linux下可以用用ssh keygen生成公鑰 私鑰對,下面我以centos為例。有機器a 192.168.1.155 b 192.168.1.181 現想a通過ssh免密碼登入到b。1.在a機下生成公鑰 私鑰對。chenlb a ssh keygen t rs...

ssh 免密碼登入

ssh 免密碼登入 ssh 無密碼登入要使用公鑰與私鑰。linux下可以用用ssh keygen生成公鑰 私鑰對,下面我以centos為例。有機器a 192.168.1.155 b 192.168.1.181 現想a通過ssh免密碼登入到b。1.在a機下生成公鑰 私鑰對。chenlb a ssh k...