一、基於金鑰認證的服務端基本安全設定:
1、修改/etc/ssh/sshd_config,具體如下:
protocol 2 #只支援ssh2協議
port 《埠號》 #修改預設埠號
maxstartups 5 #同時允許5個尚未登入的ssh聯機
maxauthtries 3 #最大登入嘗試次數為3
serverkeybits 1024 #將serverkey強度改為1024位元
permitemptypasswords no #禁止空密碼進行登入
challengeresponseauthentication no #禁用s/key密碼
usepam no #不通過pam驗證
permitrootlogin no #禁止root遠端登入
passwordauthentication no #不允許密碼方式的登入
rsaauthentication no #不允許rsa認證,只針對ssh1
pubkeyauthentication yes #允許公鑰認證
authorizedkeysfile .ssh/authorized_keys #儲存公鑰的認證檔案
useprivilegeseparation yes #使用者許可權設定
syslogfacility auth #記錄ssh登入情況
loglevel info #記錄等級為info
printmotd yes #登入成功後顯示/etc/motd 檔案的內容
printlastlog no #不顯示上次登入資訊
compression yes #是否壓縮命令
keepalive yes #防止死連線
strictmodes yes #接受連線請求前對使用者主目錄和相關的配置檔案進行宿主和許可權檢查
usedns no #不使用dns反解
allowusers 《使用者名稱》 #允許通過遠端訪問的使用者,多個使用者以空格分隔
allowgroups 《組名》 #允許通過遠端訪問的組,多個組以空格分隔
denyusers 《使用者名稱》 #禁止通過遠端訪問的使用者,多個使用者以空格分隔
denygroups 《組名》 #禁止通過遠端訪問的組,多個組以空格分隔
2、如果需要限制來路ip的話,可以修改/etc/hosts.deny和/etc/hosts.allow兩個檔案,通過新增sshd:
3、金鑰設定
a、用打算通過ssh登入的帳號登入系統,建立金鑰對
ssh-keygen -b 1024 -t rsa
當要求輸入passphrase金鑰保護時,建議不要預設為空。
b、進入此使用者的 .ssh目錄,將生成的公鑰檔案(預設為id_rsa.pub)內容新增到與sshd_config中authorizedkeysfile設定項一樣的檔案(authorized_keys)中,並刪除id_rsa.pub。
cat id_rsa.pub >>authorized_keys;rm -f id_rsa.pub
c、更改.ssh目錄的許可權為700,authorized_keys檔案的許可權為600。
d、私鑰口令修改
ssh-keygen -p -p 《舊私鑰口令》 -n 《新私鑰口令》 -f 《私鑰檔案路徑》
二、基於金鑰認證的客戶端連線
linux:將私鑰檔案id_rsa拷貝到客戶端/.ssh/目錄(你也可以cp到任何其他什麼地方)中,重新命名,並設定許可權chmod 600 /.ssh/。
通過命令ssh -i ~/.ssh/@登入遠端機。
ssh客戶端在登陸服務端時,會把對應的公鑰寫入~/.ssh/known_hosts檔案。如果金鑰發生改變,則將~/.ssh/known_hosts檔案中對應的一行公鑰刪除,才能用新的私鑰登入。
putty:將私鑰檔案id_rsa拷貝到客戶端,通過puttygen轉換rsa金鑰,儲存私鑰為ppk格式,最後通過金鑰認證即可登入遠端系統。
securecrt:將私鑰檔案id_rsa拷貝到客戶端,在連線選項裡把authentication的驗證順序中的publickey放到最先的位置,開啟publickey驗證的properties頁,identity file選擇id_rsa。
三、scp的使用
scp 《源主機使用者名稱》@《源主機名》:《原始檔或目錄路徑,多個檔案以空格分隔》 《目標主機使用者名稱》@《目標主機名》:《目標檔案或目錄路徑》
如果源為本機的話,則只需要列出檔案或目錄路徑即可。
常用引數 :
-v 顯示進度
-c 壓縮傳輸選項
-p 指定埠
-4 強行使用 ipv4 位址
-6 強行使用 ipv6 位址
-i 指定私鑰檔案路徑
-r 遍歷路徑複製
-l 限制最大傳輸頻寬,單位是kb/s
四、sftp配置
1、使用ssh -v確定軟體版本
openssh版本不低於4.8sp1
openssl版本不低於0.9.6
#備份配置檔案
cp /etc/ssh/sshd_config ~/sshd_conf
#獲取最新的openssh原始碼
wget
#查詢系統中ssh相關軟體包,並解除安裝
rpm -qa |grep ssh
rpm -e openssh-4.3p2-82.el5 --nodeps
rpm -e openssh-server-4.3p2-82.el5
rpm -e openssh-clients-4.3p2-82.el5 --nodeps
tar zxvf openssh-6.1p1.tar.gz
cd openssh-6.1p1
./configure --prefix=/usr/local/ssh --sysconfdir=/etc/ssh --with-pam --with-zlib --with-ssl-dir=/usr/local/ssl --with-md5-passwords --mandir=/usr/share/man
make
make install
#確認ssh安裝成功
ssh -v
#重建ssh服務執行環境
cp ~/sshd_config /etc/ssh/sshd_config
cp /usr/local/ssh/bin/* /usr/bin/
cp /usr/local/ssh/sbin/* /usr/sbin/
cp ./contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd
chkconfig --add sshd
chkconfig --level 2345 sshd on
#確認服務配置正常
chkconfig --list
#啟動ssh服務
/etc/init.d/sshd start
全部完成後,建議重啟系統。
2、建立sftp偽根目錄,確保所有者為root
例如:mkdir /home/sftp
chown root /home/sftp
3、在系統中新增使用者,可以不建home,設定密碼。為了方便管理可以新增乙個sftp組,將sftp登入使用者集中管理。
例如:groupadd sftp
useradd -g sftp -m user1
4、在/home/sftp下建立使用者目錄,確保所有者為對應使用者,並根據實際情況設定此目錄許可權。
例如:mkdir /home/sftp/user1
chown user1:sftp /home/sftp/user1
chmod 700 /home/sftp/user1
注釋 subsystem sftp /usr/lib/openssh/sftp-server
新增 subsystem sftp internal-sftp
在配置檔案末尾加入針對登入使用者或sftp組的訪問限制
例如:#sftp組成員登入後,chroot到與使用者名稱同名的sftp下屬目錄
match group sftp
chrootdirectory /home/sftp/%u
#user1登入後,chroot到/home/sftp/user1目錄
match user user1
chrootdirectory /home/sftp/user1
6、採用chrootdirectory設定需要注意
chrootdirectory設定的目錄及其所有的上級目錄屬主必須是root且只有屬主能擁有寫許可權,也就是說許可權最大設定只能是755。
使用者目錄下的鏈結檔案失去作用。
注意:如果更改了ssh服務埠後,無法登入系統報「no route to host」錯。請檢查iptables的過濾策略,允許基於新埠的訪問。
ubuntu基基本服務安裝之sshd服務
ssh分客戶端openssh client和openssh server 如果你只是想登陸別的機器的ssh只需要安裝openssh client ubuntu有預設安裝,如果沒有則sudo apt get install openssh client 如果要使本機開放ssh服務就需要安裝openss...
NW基本配置和使用
建議選擇乙個lts long time support 版本的使用,會相對比較穩健一點 安裝好之後,在我們自己的工程目錄機構中的package.json可以加一些配置,來實現一些特定的效果,常用效果如下 licenses 證書資訊 type xx url window 下面是開發過程中專案依賴,可視...
git 基本配置和使用
git 介紹 之前是寫過關於git的一些東西的,但是都是使用的過程中遇到的問題,就簡單的記錄了一下,為了解決問題而寫的,沒有系統的寫過git的東西,今天就簡單的先寫一下關於git的一些知識,就當是做了乙個筆記吧,首先介紹一下git是什麼,我們一般聽到的最多的就是git是分布式專案管理工具,沒有問題,...