linux之ssh命令

 ssh命令用於遠程登陸上Linux主機。vim

經常使用格式:ssh [-l login_name] [-p port] [user@]hostname
更詳細的能夠用ssh -h查看。安全

不指定用戶:服務器

ssh 192.168.0.11網絡

指定用戶:app

ssh -l root 192.168.0.11ssh

ssh root@192.168.0.11tcp


若是修改過ssh登陸端口的能夠:工具

ssh -p 12333 192.168.0.11spa

ssh -l root -p 12333 216.230.230.114操作系統

ssh -p 12333 root@216.230.230.114

另外修改配置文件/etc/ssh/sshd_config,能夠改ssh登陸端口和禁止root登陸。改端口能夠防止被端口掃描。

編輯配置文件:

vim /etc/ssh/sshd_config

找到#Port 22,去掉註釋,修改爲一個五位的端口:

Port 12333

找到#PermitRootLogin yes,去掉註釋,修改成:

PermitRootLogin no

重啓sshd服務:

service sshd restart

 

 

 

默認配置文件和SSH端口

/etc/ssh/sshd_config:OpenSSH服務器配置文件;

/etc/ssh/ssh_config:OpenSSH客戶端配置文件;

~/.ssh/:用戶SSH配置目錄;

~/.ssh/authorized_keys:用戶公鑰(RSA或DSA);

/etc/nologin:若是存在這個文件,sshd會拒絕除root用戶外的其它用戶登陸;

/etc/hosts.allow和/etc/hosts.deny:定義tcp-wrapper執行的訪問控制列表;

SSH默認端口:22  

 

一、禁用OpenSSH服務器

工做站和筆記本電腦能夠不用OpenSSH服務器,若是你不須要提供SSH遠程登陸和文件傳輸功能,能夠禁用並刪除SSHD服務器,CentOS / RHEL / Fedora Linux用戶能夠使用下面的yum命令禁用和刪除openssh-server:

# chkconfig sshd off

# yum erase openssh-server

Debian / Ubuntu Linux用戶能夠使用下面的apt-get命令禁用和刪除openssh-server: 

# apt-get remove openssh-server

你可能須要更新你的iptables腳本,移除ssh例外規則,在CentOS / RHEL / Fedora下,打開etc/sysconfig/iptables和/etc/sysconfig/ip6tables文件,刪掉與ssh相關的例外規則,而後使用下面的命令重啓iptables:

# service iptables restart

# service ip6tables restart

 

二、只使用SSH v2

打開sshd_config配置文件,若是沒有就增長下面這一行設置:Protocol 2

 

三、限制用戶的SSH訪問

假設咱們只要root,vivek和jerry用戶能經過SSH使用系統,向sshd_config配置文件中添加:AllowUsers root vivek jerry

另外,你還能夠容許全部用戶經過SSH登陸,但拒絕一部分用戶,這時就須要向sshd_config配置文件中添加:DenyUsers saroj anjali foo

 

四、配置空閒超時退出時間間隔

sshd_config配置文件,確保有以下的配置項:

ClientAliveInterval 300

ClientAliveCountMax 0

上面的例子設置的空閒超時時間間隔是300秒,即5分鐘,過了這個時間後,空閒用戶將被自動踢出出去(能夠理解爲退出登陸/註銷)。

 

五、禁用.rhosts文件

不要讀取用戶的~/.rhosts和~/.shosts文件,使用下面的設置更新sshd_config配置文件:

IgnoreRhosts yes

 

六、禁用基於主機的身份驗證

HostbasedAuthentication no

 

七、禁用root經過SSH登陸

PermitRootLogin no

 

八、啓用警告橫幅

Banner /etc/issue

 

八、防火牆SSH端口:22

 

更新/etc/sysconfig/iptables(Red Hat及基於Red Hat的系統)文件,只接受來自192.168.1.0/24和202.54.1.5/29的鏈接,配置以下:

-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 22 -j ACCEPT

-A RH-Firewall-1-INPUT -s 202.54.1.5/29 -m state --state NEW -p tcp --dport 22 -

九、使用TCP Wrapper

TCP Wrapper是一個基於主機的網絡ACL系統,用於過濾到互聯網的網絡訪問,OpenSSH支持TCP Wrapper,只須要更新你的/etc/hosts.allow文件,下面的例子表示僅容許來自192.168.1.2 和172.16.23.12的ssh訪問:

192.168.1.2 172.16.23.12

關於如何在Linux / Mac OS X 和UNIX類操做系統上安裝和配置TCP Wrapper,請訪問http://www.cyberciti.biz/faq/tcp-wrappers-hosts-allow-deny-tutorial/

十、禁用空密碼

你須要明確禁止密碼爲空的用戶遠程登陸,使用下面的設置更新sshd_config配置文件:

PermitEmptyPasswords no

十一、使用日誌分析器

使用logwatch或logcheck讀取你的日誌,這些工具讓你更容易閱讀日誌內容,它們能夠遍歷給定時間範圍內的日誌,並生成明瞭的報告,請確保sshd_config配置文件中將LogLevel設置爲INFO或DEBUG了。

LogLevel INFO

Other

#  開啓特權隔離

UsePrivilegeSeparation yes

# 防止使用不安全的home目錄和密鑰權限

StrictModes yes

# 開啓反向名稱檢查

VerifyReverseMapping yes

# 設置是否須要端口轉發

AllowTcpForwarding no

X11Forwarding no

#  指定是否容許密碼驗證,默認是yes

PasswordAuthentication no

 

最後警告你們,在重啓或從新載入修改以前,先使用下面的命令驗證一下sshd_config配置文件是否無誤:

# /usr/sbin/sshd -t
相關文章
相關標籤/搜索