『壹』 如何開啟SSH SERVER服務
SSH分客戶端openssh-client和openssh-server
如果你只是想登陸別的機器的SSH只需要安裝openssh-client(ubuntu有默認安裝,如果沒有則sudo apt-get install openssh-client),如果要使本機開放SSH服務就需要安裝openssh-server
sudo apt-get install openssh-server
然後確認sshserver是否啟動了:
ps -e |grep ssh
如果看到sshd那說明ssh-server已經啟動了。
如果沒有則可以這樣啟動:sudo /etc/init.d/ssh start
ssh-server配置文件位於/ etc/ssh/sshd_config,在這里可以定義SSH的服務埠,默認埠是22,你可以自己定義成其他埠號,如222。
然後重啟SSH服務:
sudo /etc/init.d/ssh stop
sudo /etc/init.d/ssh start
然後使用以下方式登陸SSH:
ssh [email protected] username為192.168.1.112 機器上的用戶,需要輸入密碼。
斷開連接:exit
『貳』 如何開啟ubuntu的SSH服務
1,首先安裝ssh服務:執行命令:
sudo apt-get install openssh-server
2,然後確認sshserver是否啟動,執行ps -e |grep ssh
如果只有ssh-agent那ssh-server還沒有啟動,如果看到sshd那說明ssh-server已經啟動了。
3,ssh-server配置文件位於/etc/ssh/sshd_config
可以定義SSH的服務埠,默認埠是22,也可以改成其他埠。
4,然後重啟SSH服務sudo /etc/init.d/ssh resart
『叄』 ubuntu 怎麼安裝sshd
sudo apt-get install openssh-server
Ubuntu預設安裝了openssh-client,所以在這里就不安裝了,如果你的系統沒有安裝的話,再用apt-get安裝上即可。
然後確認sshserver是否啟動了:
ps -e |grep ssh
如果只有ssh-agent那ssh-server還沒有啟動,需要/etc/init.d/ssh start,如果看到sshd那說明ssh-server已經啟動了。
ssh-server配置文件位於/ etc/ssh/sshd_config,在這里可以定義SSH的服務埠,默認埠是22,你可以自己定義成其他埠號,如222。然後重啟SSH服務:
sudo /etc/init.d/ssh resar
ssh連接:ssh linux[email protected]
1. 首先在伺服器上安裝ssh的伺服器端。
$ sudo aptitude install openssh-server
2. 啟動ssh-server。
$ /etc/init.d/ssh restart
3. 確認ssh-server已經正常工作。
$ netstat -tlp
tcp6 0 0 *:ssh *:* LISTEN -
看到上面這一行輸出說明ssh-server已經在運行了。
4. 在客戶端通過ssh登錄伺服器。假設伺服器的IP地址是192.168.0.103,登錄的用戶名是hyx。
$ ssh -l hyx 192.168.0.103
接下來會提示輸入密碼,然後就能成功登錄到伺服器上了
『肆』 ssh服務介紹
SSH是Secure Shell Protocol的簡寫。在進行數據傳輸之前,SSH先對聯機數據包通過加密技術進行加密處理,加密後在進行數據傳輸。確保了傳遞的數據安全。
SSH是專為遠程登陸會話和其他網路服務提供的安全性協議。利用SSH協議可以有效的防止遠程管理過程中的信息泄漏問題。
在默認狀態下,SSH服務主要提供兩個服務功能;一個是提供類似telnet遠程聯機伺服器的服務,即上面提到的SSH服務:另一個類似FTP服務的sftp-server,藉助SSH協議來傳輸數據的,提供更安全的SFTP服務 提醒SSH客戶端(ssh命令)還包含一個很有用的遠程安全拷貝命令scp,也是通過ssh協議工作的
小結:
1)SSH是安全的加密協議,用於遠程連接Linux伺服器。
2)SSH默認的埠是22,安全協議版本是SSH2,除了2還有ssh1有漏洞
3)SSH伺服器端主要包含兩個伺服器功能SSH遠程連接,SFTP服務。
4)Linux SSH客戶端包含ssh遠程連接命令,以及遠程拷貝scp命令等。
修改SSH服務的運行參數,是通過修改配置文件/etc /ssh/sshd_config實現的。
Port 52114 (ssh默認連接埠是22 修改他)
PermitRootLogin no(禁止遠程root登陸)
PermitEmptyPasswords no(禁止空密碼的登陸)
UseDNS no(不適用DNS)
ListenAddress 172.16.1.61:22 (只監聽內網IP 可以加埠號)
在遠程管理linux系統基本上都要使用到ssh,原因很簡單:telnet、FTP等傳輸方式是以明文傳送用戶認證信息,本質上是不安全的,存在被網路竊聽的危險。SSH(Secure Shell)目前較可靠,是專為遠程登錄會話和其他網路服務提供安全性的協議。利用SSH協議可以有效防止遠程管理過程中的信息泄露問題,透過SSH可以對所有傳輸的數據進行加密,也能夠防止DNS欺騙和IP欺騙。
ssh_config和sshd_config都是ssh伺服器的配置文件,二者區別在於,前者是針對客戶端的配置文件,後者則是針對服務端的配置文件。兩個配置文件都允許你通過設置不同的選項來改變客戶端程序的運行方式。下面列出來的是兩個配置文件中最重要的一些關鍵詞,每一行為「關鍵詞&值」的形式,其中「關鍵詞」是忽略大小寫的。
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 ~
下面對上述選項參數逐進行解釋:
Site-wide defaults for various options
帶「#」表示該句為注釋不起作,該句不屬於配置文件原文,意在說明下面選項均為系統初始默認的選項。說明一下,實際配置文件中也有很多選項前面加有「#」注釋,雖然表示不起作用,其實是說明此為系統默認的初始化設置。
Host *
"Host"只對匹配後面字串的計算機有效,「 」表示所有的計算機。從該項格式前置一些可以看出,這是一個類似於全局的選項,表示下面縮進的選項都適用於該設置,可以指定某計算機替換 號使下面選項只針對該算機器生效。
ForwardAgent no
"ForwardAgent"設置連接是否經過驗證代理(如果存在)轉發給遠程計算機。
ForwardX11 no
"ForwardX11"設置X11連接是否被自動重定向到安全的通道和顯示集(DISPLAY set)。
RhostsAuthentication no
"RhostsAuthentication"設置是否使用基於rhosts的安全驗證。
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字元。
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
下面逐行說明上面的選項設置:
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 伺服器的速度。
1)執行命令生成私鑰和公鑰 ssh-keygen -t dsa 如圖:
3)我們切換過去就不需要密碼了 如圖
『伍』 windows Openssh-server(服務端-免密登陸設置)
windows10(其它版本請自行網路)
一、win10 安裝spenssh
1、服務端切換到C:ProgramDatassh下(首次啟動sshd後會生成該文件夾),打開sshd_config文件
2、修改 sshd_config 配置文件參數
3、重啟ssh-server服務
三、服務端設置完成, 設置客戶端鏈接
1、客戶端生成ssh密鑰文件:
注: -d 4096 是設置加密位數(可不要); -t 任意字元 必須設置
2、需要將客戶端(celient)生成的 id_rsa.pub 文件密鑰, 追加 到服務端的 authorized_keys 文件中,[authorized_keys 文件路徑: windows系統在 C:UsersAdministrator.ssh 目錄下,沒有可新建]
四、測試ssh免密鏈接, 首次需要輸入密碼
『陸』 ssh伺服器端配置文件的絕對路徑
一般ssh服務的配置文件為/etc/sshd/sshd-config.不同的發行版略有不同,但通常都在/etc目錄。
『柒』 ubuntu配置ssh server
ubuntu版本是Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-66-generic x86_64),所有操作在一台機器上進行。
1. 安裝:
sudo apt-get install openssh-server
2. 啟動ssh服務:
sudo /etc/init.d/ssh start
3. 以賬號密碼ssh登錄(不安全):
ssh root@localhost
通過以上命令以root身份登錄會失敗,第一是配置中默認不允許通過密碼登錄,另外是root密碼由系統設置,需要先設置密碼。root身份涉及到安全,一般強烈不建議這么做。但是我們為了研究一下,就是要用root身份登錄怎麼辦?
1)修改登錄配置。
sudo vim /etc/ssh/sshd_config
打開這個配置文件後,找到配置項PermitRootLogin,當前的設置是prohibit-password。
PermitRootLogin prohibit-password
我們修改一下,設置為允許root身份以密碼登錄。
PermitRootLogin yes
#PermitRootLogin prohibit-password (這行保留,僅僅只是注釋掉)
修改完成後,重啟ssh服務生效。
sudo /etc/init.d/ssh restart
2)修改root密碼。
hhh:~$ sudo passwd
[sudo] password for hhh:
輸入新的 UNIX 密碼:
重新輸入新的 UNIX 密碼:
passwd:已成功更新密碼
hhh:~$
按照以上命令成功修改後,就可以用root身份本地登錄了。驗證一下,用su命令後提示輸入密碼,成功登錄後提示符從$變為#,說明進入root模式。通過exit可以退出root模式,退出後提示符又變回$。
hhh:~$ su
密碼:
root@hhh:~# exit
exit
hhh:~$
3)以root身份ssh登錄本機
hhh:~$ ssh root@localhost
root@localhost's password:
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-66-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
1 個可升級軟體包。
0 個安全更新。
*** 需要重啟系統 ***
Last login: Fri Apr 14 09:58:03 2017 from 127.0.0.1
root@hhh:~#exit
注銷
Connection to localhost closed.
登錄成功,試驗完畢。為了回到安全狀態,執行sudo vim /etc/ssh/sshd_config,將原來注釋掉的PermitRootLogin prohibit-password
打開,新添加的yes選項注釋掉或者刪掉。
4. 以公鑰認證ssh登錄
1)在客戶端生成密鑰對。
hhh:~$ ssh-keygen -t rsa -C "[email protected]"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hhh/.ssh/id_rsa): /home/hhh/.ssh/ida_rsa_hhh
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/hhh/.ssh/id_rsa_hhh.
Your public key has been saved in /home/hhh/.ssh/id_rsa_hhh.pub.
The key fingerprint is:
SHA256:zB/ [email protected]
The key's randomart image is:
+---[RSA 2048]----+
| . ++O*=+o.|
| + *==+o. |
| .o=. E |
| + o .+ .|
| S ....o o|
| . o=. o.|
| ..o+o +|
| o+.o o.|
| ...+ ..o|
+----[SHA256]-----+
密鑰文件默認存放在當前用戶目錄下的.ssh目錄下,公鑰文件是id_rsa.pub,私鑰文件是id_rsa。如果之前已經生成過密鑰對,需要重新指定文件路徑存放新的密鑰對,如上所示,將文件路徑重新指定為/home/hhh/.ssh/ida_rsa_hhh。
2)將公鑰上傳到對應服務端
需要將客戶端生成的公鑰上傳到伺服器,並且拷貝到對應用戶的.ssh目錄下。我們這里是本地登錄,客戶端用戶賬號和服務端要登錄的賬號是同一個賬號,所以這一步就省略掉了。然後,將公鑰放入到授權文件中。
cd ~/.ssh
cat id_rsa_hhh.pub >> authorized_keys
chmod 0600 authorized_keys(僅允許本用戶讀寫,否則可能被修改)
3)嘗試ssh登錄普通賬號並退出
ssh hhh@localhost
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-66-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
1 個可升級軟體包。
0 個安全更新。
*** 需要重啟系統 ***
Last login: Thu Apr 13 17:28:07 2017 from 127.0.0.1
hhh:~$ exit
注銷
Connection to localhost closed.
5. 嘗試ssh登錄root賬號
hhh:~$ ssh root@localhost
root@localhost's password:
Permission denied, please try again.
無法登錄。這里要解決兩個問題,一個配置成可以root登錄,另一個是要配置公鑰文件。
首先,修改配置文件。sudo vim /etc/ssh/sshd_config, 找到PermitRootLogin,將其後面no改為yes。
其次,類似普通用戶的公鑰文件配置,在/etc/ssh目錄下做一個類似~/.ssh目錄下的authorized_keys文件。此處,我們可以簡單拷貝這個文件過來。sudo cp ~/.ssh/authorized_keys /etc/ssh/authorized_keys。這個authorized_keys裡面如果存有多個公鑰,將會帶來安全隱患,所以要按需拷貝,此處只是為了省事,就直接把文件拷貝過來了。
再次試驗,成功登錄並退出。
hhh:~
$ ssh root@localhost
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-66-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
1 個可升級軟體包。
0 個安全更新。
*** 需要重啟系統 ***
Last login: Fri Apr 14 13:51:38 2017 from 127.0.0.1
root@hhh:~# exit
注銷
Connection to localhost closed.
hhh:~$
試驗結束,記得將原來的配置文件改回去並重啟ssh服務。