一、 基礎知識
ssh 爲 secure shell 的縮寫,由 IETF 的網絡工作小組(Network Working Group)所制定;SSH 爲建立在應用層和傳輸層基礎上的安全協議。SSH 是目前較可靠,專爲遠程登錄會話和其他網絡服務提供安全性的協議。利用 SSH 協議可以有效防止遠程管理過程中的信息泄露問題。
Ssh是協議,OpenSSH 是一組用於安全地訪問遠程計算機的連接工具。它可以作telnet 的直接替代品使用。Telnet是基於明文傳輸的協議,SSH 是tcp協議能夠安全地進行隧道/轉發。 OpenSSH 對所有的傳輸進行加密, 從而有效地阻止了竊聽、 連接劫持, 以及其他網絡級的***。OpenSSH 由 OpenBSD project 維護。
登錄過程和使用 rlogin 或 telnet 建立的會話非常類似。 在連接時, SSH 會利用一個密鑰指紋系統來驗證服務器的真實性。 只有在第一次連接時, 用戶會被要求輸入 yes。 之後的連接將會驗證預先保存下來的密鑰指紋。 如果保存的指紋與登錄時接收到的不符, 則將會給出警告。 指紋保存在 ~/.ssh/known_hosts 中, 對於 SSH v2 指紋, 則是 ~/.ssh/known_hosts2。
默認情況下, 較新版本的 OpenSSH 只接受 SSH v2 連接。 如果能用版本 2 則客戶程序會自動使用, 否則它會返回使用版本 1 的模式。 此外, 也可以通過命令行參數 -1 或 -2 來相應地強制使用版本 1 或 2。 保持客戶端的版本 1 能力是爲了考慮較早版本的兼容性。
1、Cat /.ssh/kenown-hosts 保存了遠程主機上的特徵碼
如果刪除了的話要重新驗證
沒有刪除的話下次在登錄可以直接輸入密碼登錄
二、安全登錄的講解
Lastb 可以查看最近嘗試登錄主機的信息
Xshell登錄時登錄不了
1、ip配置錯誤
2、用橋架網卡方式
3、最好添加一張迴環網卡
4、下面看ssh服務啓動沒有
2、登錄遠程主機爲了安全起見最好用遠程主機的系統用戶登錄
ssh: 配置/etc/ssh/ssh_config
ssh [username@]host [COMMAND]
ssh -l username host [COMMAND]
-p PORT
3、scp的講解:這個命令和cp差不多 不同的只是文件目錄的指定方式
分兩種情形:
1、源文件在本機,目標爲遠程
# scp /path/to/somefile... USERNAME@HOST:/path/to/somewhere
2、源文件在遠程,本地爲目標
# scp USERNAME@HOST:/path/to/somewhere /path/to/somewhere
-r: 複製目錄時使用
-p: 保持源文件的元數據信息,包括mode和timestamp
-q: 靜默模式
-p PORT: 指定ssh協議監聽的端口
scp -r 172.16.249.229:/root/test ./
4、客戶端配置文件
Ssl支持sftp 可以直接安裝sftp 然後遠程連接主機上傳下載文件
5、關於密碼的問題
不用輸入密碼就能遠程登錄
服務器端/etc/ssh/sshd.conf介紹
不用密碼登錄遠程主機
1、在本地生成公鑰,複製到遠程主機
[root@localhost .ssh]# ssh-copy-id -i id_rsa.pub 172.16.249.229
2、把公鑰追加到遠程主機中
[root@localhost .ssh]# cat id_rsa.pub >> .ssh/authorized_keys
3、驗證不輸入密碼登錄遠程主機
[root@localhost .ssh]#ssh 172.16.224.249
三、關於登錄到遠程服務器安全的一些策略
1、不要使用默認的22號端口;
2、不要使用protocol 1;
3、限制可登錄的用戶
白名單:
AllowUsers user1 user2 ...
AllowGroups grp1 grp2...
黑名單:
DenyUsers
DenyGroups
4、設定空閒會話超時時長
ClientAliveInterval 300
ClientAliveCountMax 0
5、利用防火牆設置ssh訪問策略;
6、僅監聽在特定的IP地址,而非本機所有的IP地址;
7、使用強密碼策略
# tr -dc A-Za-z0-9_ < /dev/urandom | head -c 30 | xargs
8、使用基於密鑰的認證;
9、禁止使用空密碼;
10、禁止root用戶直接登錄;
11、限制ssh的訪問頻度
12、做好日誌,經常分析;