ssh服務(wù)介紹
SSH是Secure Shell Protocol的簡寫。在進(jìn)行數(shù)據(jù)傳輸之前,SSH先對聯(lián)機(jī)數(shù)據(jù)包通過加密技術(shù)進(jìn)行加密處理,加密后在進(jìn)行數(shù)據(jù)傳輸。確保了傳遞的數(shù)據(jù)安全。
SSH是專為遠(yuǎn)程登陸會話和其他網(wǎng)絡(luò)服務(wù)提供的安全性協(xié)議。利用SSH協(xié)議可以有效的防止遠(yuǎn)程管理過程中的信息泄漏問題。
在默認(rèn)狀態(tài)下,SSH服務(wù)主要提供兩個服務(wù)功能;一個是提供類似telnet遠(yuǎn)程聯(lián)機(jī)服務(wù)器的服務(wù),即上面提到的SSH服務(wù):另一個類似FTP服務(wù)的sftp-server,借助SSH協(xié)議來傳輸數(shù)據(jù)的,提供更安全的SFTP服務(wù) 提醒SSH客戶端(ssh命令)還包含一個很有用的遠(yuǎn)程安全拷貝命令scp,也是通過ssh協(xié)議工作的
小結(jié):
1)SSH是安全的加密協(xié)議,用于遠(yuǎn)程連接Linux服務(wù)器。
2)SSH默認(rèn)的端口是22,安全協(xié)議版本是SSH2,除了2還有ssh1有漏洞
3)SSH服務(wù)器端主要包含兩個服務(wù)器功能SSH遠(yuǎn)程連接,SFTP服務(wù)。
4)Linux SSH客戶端包含ssh遠(yuǎn)程連接命令,以及遠(yuǎn)程拷貝scp命令等。
更改SSH默認(rèn)登陸配置
修改SSH服務(wù)的運行參數(shù),是通過修改配置文件/etc /ssh/sshd_config實現(xiàn)的。
Port 52114 (ssh默認(rèn)連接端口是22 修改他)
PermitRootLogin no(禁止遠(yuǎn)程root登陸)
PermitEmptyPasswords no(禁止空密碼的登陸)
UseDNS no(不適用DNS)
ListenAddress 172.16.1.61:22 (只監(jiān)聽內(nèi)網(wǎng)IP 可以加端口號)
SSH配置文件的說明
在遠(yuǎn)程管理linux系統(tǒng)基本上都要使用到ssh,原因很簡單:telnet、FTP等傳輸方式是?以明文傳送用戶認(rèn)證信息,本質(zhì)上是不安全的,存在被網(wǎng)絡(luò)竊聽的危險。SSH(Secure Shell)目前較可靠,是專為遠(yuǎn)程登錄會話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議。利用SSH協(xié)議可以有效防止遠(yuǎn)程管理過程中的信息泄露問題,透過SSH可以對所有傳輸?shù)臄?shù)據(jù)進(jìn)行加密,也能夠防止DNS欺騙和IP欺騙。
ssh_config和sshd_config都是ssh服務(wù)器的配置文件,二者區(qū)別在于,前者是針對客戶端的配置文件,后者則是針對服務(wù)端的配置文件。兩個配置文件都允許你通過設(shè)置不同的選項來改變客戶端程序的運行方式。下面列出來的是兩個配置文件中最重要的一些關(guān)鍵詞,每一行為“關(guān)鍵詞&值”的形式,其中“關(guān)鍵詞”是忽略大小寫的。
??1、編輯 /etc/ssh/ssh_config 文件
Site-wide defaults for various options
Host *
ForwardAgent no
ForwardX11 no
RhostsAuthentication no
RhostsRSAAuthentication no
? RSAAuthentication yes
PasswordAuthentication yes
FallBackToRsh no
UseRsh no
BatchMode no
CheckHostIP yes
StrictHostKeyChecking no
IdentityFile ~/.ssh/identity
Port 22
Cipher blowfish
EscapeChar ~
下面對上述選項參數(shù)逐進(jìn)行解釋:
Site-wide defaults for various options
帶“#”表示該句為注釋不起作,該句不屬于配置文件原文,意在說明下面選項均為系統(tǒng)初始默認(rèn)的選項。說明一下,實際配置文件中也有很多選項前面加有“#”注釋,雖然表示不起作用,其實是說明此為系統(tǒng)默認(rèn)的初始化設(shè)置。
Host *
"Host"只對匹配后面字串的計算機(jī)有效,“”表示所有的計算機(jī)。從該項格式前置一些可以看出,這是一個類似于全局的選項,表示下面縮進(jìn)的選項都適用于該設(shè)置,可以指定某計算機(jī)替換號使下面選項只針對該算機(jī)器生效。
ForwardAgent no
"ForwardAgent"設(shè)置連接是否經(jīng)過驗證代理(如果存在)轉(zhuǎn)發(fā)給遠(yuǎn)程計算機(jī)。
ForwardX11 no
"ForwardX11"設(shè)置X11連接是否被自動重定向到安全的通道和顯示集(DISPLAY set)。
RhostsAuthentication no
"RhostsAuthentication"設(shè)置是否使用基于rhosts的安全驗證。
RhostsRSAAuthentication no
"RhostsRSAAuthentication"設(shè)置是否使用用RSA算法的基于rhosts的安全驗證。
RSAAuthentication yes
"RSAAuthentication"設(shè)置是否使用RSA算法進(jìn)行安全驗證。
PasswordAuthentication yes
"PasswordAuthentication"設(shè)置是否使用口令驗證。
FallBackToRsh no
"FallBackToRsh"設(shè)置如果用ssh連接出現(xiàn)錯誤是否自動使用rsh,由于rsh并不安全,所以此選項應(yīng)當(dāng)設(shè)置為"no"。
UseRsh no
"UseRsh"設(shè)置是否在這臺計算機(jī)上使用"rlogin/rsh",原因同上,設(shè)為"no"。
BatchMode no
"BatchMode":批處理模式,一般設(shè)為"no";如果設(shè)為"yes",交互式輸入口令的提示將被禁止,這個選項對腳本文件和批處理任務(wù)十分有用。
CheckHostIP yes
"CheckHostIP"設(shè)置ssh是否查看連接到服務(wù)器的主機(jī)的IP地址以防止DNS欺騙。建議設(shè)置為"yes"。
StrictHostKeyChecking no
"StrictHostKeyChecking"如果設(shè)為"yes",ssh將不會自動把計算機(jī)的密匙加入"$HOME/.ssh/known_hosts"文件,且一旦計算機(jī)的密匙發(fā)生了變化,就拒絕連接。
IdentityFile ~/.ssh/identity
"IdentityFile"設(shè)置讀取用戶的RSA安全驗證標(biāo)識。
Port 22
"Port"設(shè)置連接到遠(yuǎn)程主機(jī)的端口,ssh默認(rèn)端口為22。
Cipher blowfish
“Cipher”設(shè)置加密用的密鑰,blowfish可以自己隨意設(shè)置。
EscapeChar ~
“EscapeChar”設(shè)置escape字符。
2、編輯 /etc/ssh/sshd_config 文件:?
This is ssh server systemwide configuration file.
Port 22
ListenAddress 192.168.1.1
HostKey /etc/ssh/ssh_host_key
ServerKeyBits 1024
LoginGraceTime 600
KeyRegenerationInterval 3600
PermitRootLogin no
IgnoreRhosts yes
IgnoreUserKnownHosts yes
StrictModes yes
X11Forwarding no
PrintMotd yes
SyslogFacility AUTH
LogLevel INFO
RhostsAuthentication no
RhostsRSAAuthentication no
RSAAuthentication yes
PasswordAuthentication yes
PermitEmptyPasswords no
AllowUsers admin
?下面逐行說明上面的選項設(shè)置:
Port 22
"Port"設(shè)置sshd監(jiān)聽的端口號。
ListenAddress 192.168.1.1
"ListenAddress”設(shè)置sshd服務(wù)器綁定的IP地址。
HostKey /etc/ssh/ssh_host_key
"HostKey”設(shè)置包含計算機(jī)私人密匙的文件。
ServerKeyBits 1024
"ServerKeyBits”定義服務(wù)器密匙的位數(shù)。
LoginGraceTime 600
"LoginGraceTime”設(shè)置如果用戶不能成功登錄,在切斷連接之前服務(wù)器需要等待的時間(以秒為單位)。
KeyRegenerationInterval 3600
"KeyRegenerationInterval”設(shè)置在多少秒之后自動重新生成服務(wù)器的密匙(如果使用密匙)。重新生成密匙是為了防止用盜用的密匙解密被截獲的信息。
PermitRootLogin no
"PermitRootLogin”設(shè)置是否允許root通過ssh登錄。這個選項從安全角度來講應(yīng)設(shè)成"no"。
IgnoreRhosts yes
"IgnoreRhosts”設(shè)置驗證的時候是否使用“rhosts”和“shosts”文件。
IgnoreUserKnownHosts yes
"IgnoreUserKnownHosts”設(shè)置ssh daemon是否在進(jìn)行RhostsRSAAuthentication安全驗證的時候忽略用戶的"$HOME/.ssh/known_hosts”
StrictModes yes
"StrictModes”設(shè)置ssh在接收登錄請求之前是否檢查用戶家目錄和rhosts文件的權(quán)限和所有權(quán)。這通常是必要的,因為新手經(jīng)常會把自己的目錄和文件設(shè)成任何人都有寫權(quán)限。
X11Forwarding no
"X11Forwarding”設(shè)置是否允許X11轉(zhuǎn)發(fā)。
PrintMotd yes
"PrintMotd”設(shè)置sshd是否在用戶登錄的時候顯示“/etc/motd”中的信息。
SyslogFacility AUTH
"SyslogFacility”設(shè)置在記錄來自sshd的消息的時候,是否給出“facility code”。
LogLevel INFO
"LogLevel”設(shè)置記錄sshd日志消息的層次。INFO是一個好的選擇。查看sshd的man幫助頁,已獲取更多的信息。
RhostsAuthentication no
"RhostsAuthentication”設(shè)置只用rhosts或“/etc/hosts.equiv”進(jìn)行安全驗證是否已經(jīng)足夠了。
RhostsRSAAuthentication no
"RhostsRSA”設(shè)置是否允許用rhosts或“/etc/hosts.equiv”加上RSA進(jìn)行安全驗證。
RSAAuthentication yes
"RSAAuthentication”設(shè)置是否允許只有RSA安全驗證。
PasswordAuthentication yes
"PasswordAuthentication”設(shè)置是否允許口令驗證。
PermitEmptyPasswords no
"PermitEmptyPasswords”設(shè)置是否允許用口令為空的帳號登錄。
AllowUsers admin
"AllowUsers”的后面可以跟任意的數(shù)量的用戶名的匹配串,這些字符串用空格隔開。主機(jī)名可以是域名或IP地址。
通常情況下我們在連接 OpenSSH服務(wù)器的時候假如 UseDNS選項是打開的話,服務(wù)器會先根據(jù)客戶端的 IP地址進(jìn)行 DNS PTR反向查詢出客戶端的主機(jī)名,然后根據(jù)查詢出的客戶端主機(jī)名進(jìn)行DNS正向A記錄查詢,并驗證是否與原始 IP地址一致,通過此種措施來防止客戶端欺騙。平時我們都是動態(tài) IP不會有PTR記錄,所以打開此選項也沒有太多作用。我們可以通過關(guān)閉此功能來提高連接 OpenSSH 服務(wù)器的速度。
SSH免密鑰登陸
1)執(zhí)行命令生成私鑰和公鑰 ssh-keygen -t dsa 如圖:

2)發(fā)送公鑰ssh-copy-id -i ~/.ssh/id_dsa.pub root@192.168.1.201如圖

3)我們切換過去就不需要密碼了 如圖

批量添加 密鑰

: