ssh配置文件ssh_config和sshd_config區別

問題描述:在一次配置ssh端口和祕鑰登陸過程當中,修改幾回都沒有成功。最後發現修改的是ssh.config,緣由是習慣tab一下,實在是眼拙!html

ssh_config和sshd_config配置文件區別

     遠程管理linux系統基本上都要使用到ssh,緣由很簡單:telnet、FTP等傳輸方式是?以明文傳送用戶認證信息,本質上是不安全的,存在被網絡竊聽的危險。SSH(Secure Shell)目前較可靠,是專爲遠程登陸會話和其餘網絡服務提供安全性的協議。利用SSH協議能夠有效防止遠程管理過程當中的信息泄露問題,透過SSH能夠對全部傳輸的數據進行加密,也可以防止DNS欺騙和IP欺騙。
 
    ssh_config和sshd_config都是ssh服務器的配置文件,兩者區別在於,前者是針對客戶端的配置文件,後者則是針對服務端的配置文件。兩個配置文件都容許你經過設置不一樣的選項來改變客戶端程序的運行方式。下面列出來的是兩個配置文件中最重要的一些關鍵詞,每一行爲「關鍵詞&值」的形式,其中「關鍵詞」是忽略大小寫的。linux

客戶端

一、編輯 /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 vim

下面對上述選項參數逐進行解釋:安全

# Site-wide defaults for various options
帶「#」表示該句爲註釋不起做,該句不屬於配置文件原文,意在說明下面選項均爲系統初始默認的選項。說明一下,實際配置文件中也有不少選項前面加有「#」註釋,雖然表示不起做用,實際上是說明此爲系統默認的初始化設置。服務器

Host *
"Host"只對匹配後面字串的計算機有效,「*」表示全部的計算機。從該項格式前置一些能夠看出,這是一個相似於全局的選項,表示下面縮進的選項都適用於該設置,能夠指定某計算機替換*號使下面選項只針對該算機器生效。網絡

ForwardAgent no
"ForwardAgent"設置鏈接是否通過驗證代理(若是存在)轉發給遠程計算機。ssh

ForwardX11 no
"ForwardX11"設置X11鏈接是否被自動重定向到安全的通道和顯示集(DISPLAY set)。ide

RhostsAuthentication no
"RhostsAuthentication"設置是否使用基於rhosts的安全驗證。ui

RhostsRSAAuthentication no
"RhostsRSAAuthentication"設置是否使用用RSA算法的基於rhosts的安全驗證。

RSAAuthentication yes
"RSAAuthentication"設置是否使用RSA算法進行安全驗證。

PasswordAuthentication yes
"PasswordAuthentication"設置是否使用口令驗證。

FallBackToRsh no
"FallBackToRsh"設置若是用ssh鏈接出現錯誤是否自動使用rsh,因爲rsh並不安全,因此此選項應當設置爲"no"。

UseRsh no
"UseRsh"設置是否在這臺計算機上使用"rlogin/rsh",緣由同上,設爲"no"。

BatchMode no
"BatchMode":批處理模式,通常設爲"no";若是設爲"yes",交互式輸入口令的提示將被禁止,這個選項對腳本文件和批處理任務十分有用。

CheckHostIP yes
"CheckHostIP"設置ssh是否查看鏈接到服務器的主機的IP地址以防止DNS欺騙。建議設置爲"yes"。

StrictHostKeyChecking no
"StrictHostKeyChecking"若是設爲"yes",ssh將不會自動把計算機的密匙加入"$HOME/.ssh/known_hosts"文件,且一旦計算機的密匙發生了變化,就拒絕鏈接。

IdentityFile ~/.ssh/identity
"IdentityFile"設置讀取用戶的RSA安全驗證標識。

Port 22
"Port"設置鏈接到遠程主機的端口,ssh默認端口爲22。

Cipher blowfish
「Cipher」設置加密用的密鑰,blowfish能夠本身隨意設置。

EscapeChar
「EscapeChar」設置escape字符。

服務器端

二、編輯 /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

 

?下面逐行說明上面的選項設置:

Port 22
"Port"設置sshd監聽的端口號

ListenAddress 192.168.1.1
"ListenAddress」設置sshd服務器綁定的IP地址。

HostKey /etc/ssh/ssh_host_key
"HostKey」設置包含計算機私人密匙的文件。

ServerKeyBits 1024
"ServerKeyBits」定義服務器密匙的位數。

LoginGraceTime 600
"LoginGraceTime」設置若是用戶不能成功登陸,在切斷鏈接以前服務器須要等待的時間(以秒爲單位)。

KeyRegenerationInterval 3600
"KeyRegenerationInterval」設置在多少秒以後自動從新生成服務器的密匙(若是使用密匙)。從新生成密匙是爲了防止用盜用的密匙解密被截獲的信息。

PermitRootLogin no
"PermitRootLogin」設置是否容許root經過ssh登陸。這個選項從安全角度來說應設成"no"

IgnoreRhosts yes
"IgnoreRhosts」設置驗證的時候是否使用「rhosts」和「shosts」文件。

IgnoreUserKnownHosts yes
"IgnoreUserKnownHosts」設置ssh daemon是否在進行RhostsRSAAuthentication安全驗證的時候忽略用戶的"$HOME/.ssh/known_hosts」

StrictModes yes
"StrictModes」設置ssh在接收登陸請求以前是否檢查用戶家目錄和rhosts文件的權限和全部權。這一般是必要的,由於新手常常會把本身的目錄和文件設成任何人都有寫權限。

X11Forwarding no
"X11Forwarding」設置是否容許X11轉發。

PrintMotd yes
"PrintMotd」設置sshd是否在用戶登陸的時候顯示「/etc/motd」中的信息。

SyslogFacility AUTH
"SyslogFacility」設置在記錄來自sshd的消息的時候,是否給出「facility code」。

LogLevel INFO
"LogLevel」設置記錄sshd日誌消息的層次。INFO是一個好的選擇。查看sshd的man幫助頁,已獲取更多的信息。

RhostsAuthentication no
"RhostsAuthentication」設置只用rhosts或「/etc/hosts.equiv」進行安全驗證是否已經足夠了。

RhostsRSAAuthentication no
"RhostsRSA」設置是否容許用rhosts或「/etc/hosts.equiv」加上RSA進行安全驗證。

RSAAuthentication yes
"RSAAuthentication」設置是否容許只有RSA安全驗證

PasswordAuthentication yes
"PasswordAuthentication」設置是否容許口令驗證。

PermitEmptyPasswords no
"PermitEmptyPasswords」設置是否容許用口令爲空的賬號登陸。

AllowUsers admin   #限定登陸的用戶名
"AllowUsers」的後面能夠跟任意的數量的用戶名的匹配串,這些字符串用空格隔開。主機名能夠是域名或IP地址

 
    一般狀況下咱們在鏈接 OpenSSH服務器的時候假如 UseDNS選項是打開的話,服務器會先根據客戶端的 IP地址進行 DNS PTR反向查詢出客戶端的主機名,而後根據查詢出的客戶端主機名進行DNS正向A記錄查詢,並驗證是否與原始 IP地址一致,經過此種措施來防止客戶端欺騙。平時咱們都是動態 IP不會有PTR記錄,因此打開此選項也沒有太多做用。咱們能夠經過關閉此功能來提升鏈接 OpenSSH 服務器的速度。

服務端步驟以下:
編輯配置文件 /etc/ssh/sshd_config
vim /etc/ssh/sshd_config
找到 UseDNS選項,若是沒有註釋,將其註釋
#UseDNS yes
添加
UseDNS no

找到 GSSAPIAuthentication選項,若是沒有註釋,將其註釋
#GSSAPIAuthentication yes
添加
GSSAPIAuthentication no

保存配置文件

重啓 OpenSSH服務器
/etc/init.d/sshd restart

注意:

     通常遠程修改ssh端口,建議22端口留着防止修改未成功,連不上都SB了。若是開啓防火牆記得添加端口放行!

port 22

port 2345

引用:

http://www.cnblogs.com/ilinuxer/p/5087452.html

http://blog.csdn.net/field_yang/article/details/51568861

相關文章
相關標籤/搜索