遠程操作服務器有多種連接方式,比如有ftp,telnet,但是其為明文傳輸,對於服務器來說還是有極大的隱患,個人最喜歡的還是SSH連接了。
SSH Secure Shell 安全外殼,傳輸加密,而且傳輸的數據經過壓縮,所以傳輸效率更高。
配置文件:/etc/ssh/sshd_config
服務命令:service sshd {start|stop|restart|reload|force-reload|condrestart|try-restart|status}
下面是幾條比較有用的配置:
passwordAuthentication yes/no //是否允許密碼驗證
PermitRootLogin no/yse //是否允許使用root賬戶
ListenAddress x.x.x.x 綁定了IP,也可相當於綁定了網卡
AllowUsers xx //僅允許xx用戶登錄,如果沒有限定就注釋掉
LoginGraceTime 30s //設置輸入密碼等待時間
ClientAliveInterval 10 //自動斷線的秒數,不啟用設為0
ClientAliveCountMax 3 //超時的次數,默認為3
還有就是ssh的連接方式有兩種,一種是通過公鑰和私鑰來登錄,另一種是通過密碼來登錄
1、無密碼登錄即通過公鑰/私鑰實現,對於公鑰和私鑰,相者是相對應的,對於公開的我們稱為公鑰,對於自己私有的稱為私鑰,且用其中的一個密鑰加密,只能由另一個密鑰來解,從反面說其中的一個密鑰可以解密的,其數據肯定來自於另一個密鑰加密的。所以我們配置過服務器ssh的都知道,我們要為其添加公鑰信息,自己保存私鑰信息。最重要的是私鑰是決對不會在網絡中傳播的,所以和https請求密鑰的交換方式有些不同,但原理都是一樣的。
私鑰各公鑰保存在~/.ssh/id_rsa 和~/.ssh/id_rsa.pub中,authorized_keys保存著認證過的密鑰。known hosts 保證著連接過的信息。
創建的命令:ssh-keygen -t rsa //如果沒有.ssh可以自己創建
ssh-copy-id -i ~/.ssh/id_rsa.pub user@IP //將公鑰發送給服務器,了可以手動加到authorized_keys最後面(cat id_rsa.pub >>authorized_keys)
找到以下內容,並去掉注釋符”#“
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
重啟服務後, 直接 ssh ip 或ssh user@ip 直接就可以連接了。
PS:如果出現連接問題,要檢查一下authorized_key權限,sudo chmod 600 ~/.ssh/authorized_keys
ssh -v user@localhost 可以顯示連接信息,用於查錯,ssh -p 可以指定端口號。
tail /var/log/secure -n 20可以查看log信息
當然,你也可以通過ssh-agent 和ssh-add 來更高效的管理自己的密鑰,你輸入一次密碼,那麼你的專用密鑰就會被高速緩存,下次就不用再輸了。
ssh-agent 啟動,ssh-add (~/.ssh/id_rsa)即可,
set | grep SSH_ 可以查看目前連接信息
二、Telnet
安裝:yum -y install telnet-server
配置文件:/etc/xinetd.d/telnet
先將配置文件裡的disable是否設為no, 否則是禁止連接。
命令:service xinetd {start|stop|status|restart|condrestart|reload}
配置防火牆,開啟23端口--在/etc/sysconfig/iptalbles 中加入-A INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT
修改端口:編輯 /etc/services 找到 telnet 那一行,改為 telnet xxxx/tcp telnet xxxx/udp ,重新配置一下防火牆,重啟服務就行。
其它配置:
在/etc/xinetd.d/telnet中
only_from = 192.168.x.x //限制IP 192.168.1.0/24 表示特定網段
no_access=192.168.1.{100,101} //該網段中的100和101結尾的不同登錄
access_times= 10:00-11:00 20:00-21:00//限制時間
instance = 2 //限制連接數
開放root登錄
sudo mv /etc/securetty /etc/securetty.bak //去除securetty就能允許root登錄
PS,最後補充一下SCP可以用來上傳文件至服務器,基本命令就是:
scp localfilename user@ip:serverfile (注意冒號,後面是用戶根目錄下的目錄)