當前位置:首頁 » 雲伺服器 » ubuntussh伺服器搭建

ubuntussh伺服器搭建

發布時間: 2023-06-05 01:19:18

① 如何在ubuntu中啟用SSH服務 03 Hacklog

一般是選擇安裝OpenSSH server 。
不廢話,直接安裝:

1

sudo apt-get install openssh-server

查看SSH server正在工作與否:

1
2

ubuntu$ ps -aef | grep sshd
root 24114 1 0 15:18 ? 00:00:00 /usr/sbin/sshd

好,現在連接一下本地的SSH伺服器看:

1

ubuntu$ ssh localhost

然後會問你是否繼續,輸入yes即可。
用你本地的賬號和密碼登錄看下。
如果登錄成功,OK,WELL DONE !

修改配置文件:
修改前先備份原始配置文件是個好習慣:

1
2

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.orig
chmod a-w /etc/ssh/sshd_config.orig

1

vim /etc/ssh/sshd_config

配置SSH
配置客戶端的軟體
OpenSSH有三種配置方式:命令行參數、用戶配置文件和系統級的配置文件(「/etc/ssh/ssh_config」)。命令行參數優先於配置文
件,用戶配置文件優先於系統配置文件。所有的命令行的參數都能在配置文件中設置。因為在安裝的時候沒有默認的用戶配置文件,所以要把「/etc/ssh
/ssh_config」拷貝並重新命名為「~/.ssh/config」。

標準的配置文件大概是這樣的:

[lots of explanations and possible options listed]

1
2
3
4
5

# Be paranoid by default
Host *
ForwardAgent no
ForwardX11 no
FallBackToRsh no

還有很多選項的設置可以用「man ssh」查看「CONFIGURATION FILES」這一章。
配置文件是按順序讀取的。先設置的選項先生效。
假定你在www.foobar.com上有一個名為「bilbo」的帳號。而且你要把「ssh-agent」和「ssh-add」結合起來使用並且使用數
壓縮來加快傳輸速度。因為主機名太長了,你懶得輸入這么長的名字,用「fbc」作為「www.foobar.com」的簡稱。你的配置文件可以是這樣
的:

1
2
3
4
5
6
7
8
9
10

Host *fbc
HostName www.foobar.com
User bilbo
ForwardAgent yes
Compression yes
# Be paranoid by default
Host *
ForwardAgent no
ForwardX11 no
FallBackToRsh no

你輸入「ssh fbc」之後,SSH會自動地從配置文件中找到主機的全名,用你的用戶名登錄並且用「ssh-agent」管理的密匙進行安全驗證。這樣很方便吧!
用SSH連接到其它遠程計算機用的還是「paranoid(偏執)」默認設置。如果有些選項沒有在配置文件或命令行中設置,那麼還是使用默認的「paranoid」設置。
在我們上面舉的那個例子中,對於到www.foobar.com的SSH連接:「ForwardAgent」和「Compression」被設置為
「Yes」;其它的設置選項(如果沒有用命令行參數)「ForwardX11」和「FallBackToRsh」都被設置成「No」。
其它還有一些需要仔細看一看的設置選項是:
l CheckHostIP yes
這個選項用來進行IP地址的檢查以防止DNS欺騙。
l CompressionLevel
壓縮的級別從「1」(最快)到「9」(壓縮率最高)。默認值為「6」。
l ForwardX11 yes
為了在本地運行遠程的X程序必須設置這個選項。
l LogLevel DEBUG
當SSH出現問題的時候,這選項就很有用了。默認值為「INFO」。
配置服務端的軟體
SSH伺服器的配置使用的是「/etc/ssh/sshd_config」配置文件,這些選項的設置在配置文件中已經有了一些說明而且用「man sshd」也可以查看幫助。請注意OpenSSH對於SSH 1.x和2.x沒有不同的配置文件。
在默認的設置選項中需要注意的有:
l PermitRootLogin yes
最好把這個選項設置成「

PermitRootLogin without-password

」,這樣「root」用戶就不能從沒有密匙的計算機上登錄。把這個選項設置成「no」將禁止「root」用戶登錄,只能用「su」命令從普通用戶轉成「root」。
l X11Forwarding no
把這個選項設置成「yes」允許用戶運行遠程主機上的X程序。就算禁止這個選項也不能提高伺服器的安全因為用戶可以安裝他們自己的轉發器(forwarder),請參看「man sshd」。
l PasswordAuthentication yes
把這個選項設置為「no」只允許用戶用基於密匙的方式登錄。這當然會給那些經常需要從不同主機登錄的用戶帶來麻煩,但是這能夠在很大程度上提高系統的安全性。基於口令的登錄方式有很大的弱點。
l # Subsystem /usr/local/sbin/sftpd
把最前面的#號去掉並且把路徑名設置成「/usr/bin/sftpserv」,用戶就能使用「sftp」(安全的FTP)了(sftpserv在
sftp軟體包中)。因為很多用戶對FTP比較熟悉而且「scp」用起來也有一些麻煩,所以「sftp」還是很有用的。而且2.0.7版本以後的圖形化的
ftp工具「gftp」也支持「sftp」。
拷貝文件
用「scp」拷貝文件
SSH提供了一些命令和shell用來登錄遠程伺服器。在默認情況下它不允許你拷貝文件,但是還是提供了一個「scp」命令。
假定你想把本地計算機當前目錄下的一個名為「mb」的文件拷貝到遠程伺服器www.foobar.com上你的家目錄下。而且你在遠程伺服器上的帳號名為「bilbo」。可以用這個命令:

1

scp mb [email protected]:.

把文件拷貝回來用這個命令:

1

scp [email protected]:mb .

「scp」調用SSH進行登錄,然後拷貝文件,最後調用SSH關閉這個連接。
如果在你的「~/.ssh/config」文件中已經為www.foobar.com做了這樣的配置:

1
2
3
4

Host *fbc
HostName www.foobar.com
User bilbo
ForwardAgent yes

那麼你就可以用「fbc」來代替「[email protected]」,命令就簡化為「scp mb fbc:.」。
「scp」假定你在遠程主機上的家目錄為你的工作目錄。如果你使用相對目錄就要相對於家目錄。
用「scp」命令的「-r」參數允許遞歸地拷貝目錄。「scp」也可以在兩個不同的遠程主機之間拷貝文件。
有時候你可能會試圖作這樣的事:用SSH登錄到www.foobar.com上之後,輸入命令「scp [local machine]:mb .」想用它把本地的「mb」文件拷貝到你當前登錄的遠程伺服器上。這時候你會看到下面的出錯信息:

ssh: secure connection to [local machine] refused

之所以會出現這樣的出錯信息是因為你運行的是遠程的「scp」命令,它試圖登錄到在你本地計算機上運行的SSH服務程序……所以最好在本地運行「scp」除非你的本地計算機也運行SSH服務程序。
用「sftp」拷貝文件
如果你習慣使用ftp的方式拷貝文件,可以試著用「sftp」。「sftp」建立用SSH加密的安全的FTP連接通道,允許使用標準的ftp命令。還有一
個好處就是「sftp」允許你通過「exec」命令運行遠程的程序。從2.0.7版以後,圖形化的ftp客戶軟體「gftp」就支持「sftp」。
如果遠程的伺服器沒有安裝sftp伺服器軟體「sftpserv」,可以把「sftpserv」的可執行文件拷貝到你的遠程的家目錄中(或者在遠程計算機
的$PATH環境變數中設置的路徑)。「sftp」會自動激活這個服務軟體,你沒有必要在遠程伺服器上有什麼特殊的許可權。
用「rsync」拷貝文件
「rsync」是用來拷貝、更新和移動遠程和本地文件的一個有用的工具,很容易就可以用「-e
ssh」參數和SSH結合起來使用。「rsync」的一個優點就是,不會拷貝全部的文件,只會拷貝本地目錄和遠程目錄中有區別的文件。而且它還使用很高效
的壓縮演算法,這樣拷貝的速度就很快。
用「加密通道」的ftp拷貝文件
如果你堅持要用傳統的FTP客戶軟體。SSH可以為幾乎所有的協議提供「安全通道」。FTP是一個有一點奇怪的協議(例如需要兩個埠)而且不同的服務程序和服務程序之間、客戶程序和客戶程序之間還有一些差別。
實現「加密通道」的方法是使用「埠轉發」。你可以把一個沒有用到的本地埠(通常大於1000)設置成轉發到一個遠程伺服器上,然後只要連接本地計算機上的這個埠就行了。有一點復雜是嗎?
其實一個基本的想法就是,轉發一個埠,讓SSH在後台運行,用下面的命令:

1

ssh [user@remote host] -f -L 1234:[remote host]:21 tail -f /etc/motd

接著運行FTP客戶,把它設置到指定的埠:

1

ftp -u [username] -p 1234 localhost

當然,用這種方法很麻煩而且很容易出錯。所以最好使用前三種方法。
用SSH設置「加密通道」
「加密通道」的基礎知識
SSH的「加密通道」是通過「埠轉發」來實現的。你可以在本地埠(沒有用到的)和在遠程伺服器上運行的某個服務的埠之間建立「加密通道」。然後只要
連接到本地埠。所有對本地埠的請求都被SSH加密並且轉發到遠程伺服器的埠。當然只有遠程伺服器上運行SSH伺服器軟體的時候「加密通道」才能工
作。可以用下面命令檢查一些遠程伺服器是否運行SSH服務:
telnet [full name of remote host] 22
如果收到這樣的出錯信息:
telnet: Unable to connect to remote host: Connection refused
就說明遠程伺服器上沒有運行SSH服務軟體。
埠轉發使用這樣的命令語法:
ssh -f [username@remote host] -L [local port]:[full name of remote host]:[remote port] [some command]
你不僅可以轉發多個埠而且可以在「~/.ssh/config」文件中用「LocalForward」設置經常使用的一些轉發埠。
為POP加上「加密通道」
你可以用POP協議從伺服器上取email。為POP加上「加密通道」可以防止POP的密碼被網路監聽器(sniffer)監聽到。還有一個好處就是SSH的壓縮方式可以讓郵件傳輸得更快。
假定你在pop.foobar.com上有一個POP帳號,你的用戶名是「bilbo」你的POP口令是「topsecret」。用來建立SSH「加密通道」的命令是:
ssh -f -C [email protected] -L 1234:pop.foobar.com:110 sleep 5
(如果要測試,可以把「sleep」的值加到500)。運行這個命令之後會提示你輸入POP口令:
[email protected]『s password:
輸入口令之後就可以用「telnet」連接到本地的轉發埠了。
telnet localhost 1234
你會收到遠程mail伺服器的「READY」消息。
當然,這個方法要求你手工輸入所有的POP命令,這是很不方便的。可以用Fetchmail(參考how to configure
Fetchmail)。Secure POP via SSH mini-HOWTO、man
fetchmail和在「/usr/doc/fetchmail-[…]」目錄下的Fetchmail的FAQ都提供了一些具體的例子。
請注意IMAP協議使用的是不同的埠:IMAP v2的埠號為143而IMAP v3的埠號為220。
為X加上「加密通道」
如果你打算在本地計算機上運行遠程SSH伺服器上的X程序,那麼登錄到遠程的計算機上,創建一個名為「~/.ssh/environment」的文件並加上這一行:
XAUTHORITY=/home/[remote user name]/.Xauthority
(如果在遠程主機上你的家目錄下不存在「.Xauthority」這個文件,那麼當用SSH登錄的時候就會自動創建)。
比如啟動一個X程序(xterm)可以這個命令:
ssh -f -X -l [remote user name] [remote machine] xterm
這將在遠程運行xterm這個程序。其它的X程序也是用相同的方法。
linuxconf加上「加密通道」
Linuxconf是Linux的配置工具,它支持遠程管理。Linuxconf的FAQ重說明了如何通過SSH使用linuxconf:
其命令為:
remadmin –exec [link_command] linuxconf –guiproto
如果你想在兩台計算機之間用加密的方式傳送信息,那麼最好用ssh。命令是:
remadmin –exec ssh -l [account] linuxconf –guiproto
這是非常有效的而且運行用圖形界面管理計算機。
這種方法需要在客戶端安裝linuxconf。其它的方法還有直接登錄到伺服器上用「X11Forwarding」或字元界面運行linuxconf。
為Webmin加上「加密通道」
Webmin是一個新的基於瀏覽器的配置工具。它運行在1000埠。你可以用SSH的「埠轉發」對它進行加密:

1

ssh -f -l [remote user name] [remote host] -L 1234:[remote host]:10000 tail -f /etc/motd

把瀏覽器指向 http://localhost:1234

修改完後記得重啟SSH服務:

1

sudo /etc/init.d/ssh restart

SSH Keys
SSH密鑰允許你不需要輸入密碼就可以登錄主機。
產生密鑰,在自己機子上:

1

ssh-keygen -t dsa

這樣為會用戶創建一個DSA加密的身份標識。期間你會被要求輸入密碼,如何不想輸入密碼,可以直接按Enter。

現在你有一對密匙了:公用密匙要分發到所有你想用ssh登錄的遠程主機上去;私人密匙要好好地保管防止別人知道你的私人密匙。用「ls –l ~/.ssh/identity」或「ls –l ~/.ssh/id_dsa」所顯示的文件的訪問許可權必須是「-rw——-」。

默認情況下,公鑰會保存在文件 ~/.ssh/id_dsa.pub ,私鑰保存在~/.ssh/id_dsa 。把公鑰COPY到遠程主機並且附加到
~/.ssh/authorized_keys通過鍵入以下命令:

1

ssh--id username@remotehost

最後 ,仔細檢查 authorized_keys 文件的許可權,確保只有通過身份驗證的用戶才有讀寫許可權。如果不是,通過以下命令修改下許可權:

1

chmod 600 .ssh/authorized_keys

如果除了你之外別人對「authorized_keys」文件也有寫的許可權,SSH就不會工作。

現在你應該可以連接到SSH伺服器而不用輸入密碼了。

如果你想從不同的計算機登錄到遠程主機,「authorized_keys」文件也可以有多個公用密匙。在這種情況下,必須在新的計算機上重新生成
一對密匙,然後把生成的「identify.pub」文件拷貝並粘貼到遠程主機的「authorized_keys」文件里。當然在新的計算機上你必須有
一個帳號,而且密匙是用口令保護的。有一點很重要,就是當你取消了這個帳號之後,別忘了把這一對密匙刪掉。

熱點內容
sas編程語言 發布:2023-09-29 08:49:10 瀏覽:924
sql2008r2導入數據 發布:2023-09-29 08:33:05 瀏覽:30
安卓無線投屏在哪裡設置 發布:2023-09-29 08:32:09 瀏覽:561
解壓泥清理 發布:2023-09-29 08:30:56 瀏覽:258
spark源碼語言 發布:2023-09-29 08:14:43 瀏覽:923
怎麼查看上架伺服器的ip 發布:2023-09-29 08:09:02 瀏覽:765
資料庫表數據復制 發布:2023-09-29 08:02:33 瀏覽:575
王牌戰爭為什麼一直顯示伺服器維修中 發布:2023-09-29 07:59:46 瀏覽:707
硬碟緩存18m 發布:2023-09-29 07:57:27 瀏覽:785
吃雞給別的房間的密碼是多少 發布:2023-09-29 07:56:45 瀏覽:550