ssh優化:
1、修改默認端口;
2、禁止root連接;
3、禁止空密碼登陸;
4、禁止DNS
UseDNS no;
5、是否允許使用基於 GSSAPI 的用戶認證
GSSAPIAuthentication no;
6、只監聽本地IP;
7、用密鑰登陸不用密碼登陸;
客戶端ssh,連接完可以在用戶下執行命令,也可以在連的時候執行命令:
ssh -p22 [email protected]
第一次連接會產生一個KEY到 ~/.ssh/know_hosts
sftp加密ftp:
#缺點:必須系統用戶,沒法鎖定目錄,可以隨意切換目錄,兩個缺點都比較危險
sftp -oPort=22 [email protected]
#不加路徑傳到root的home目錄,加路徑傳到指定路徑
put /etc/hosts
#下載文件到指定路徑,不指定則下載到登陸前路徑
get yum.conf /opt
scp全量復制,用起來基本可以被rsync替代,-r遞歸,-p保持屬性:
scp -P22 -r -p /tmp/ [email protected]:/scp/
知道端口或進程查詳情
lsof -i tcp:22
netstat -lntup|grep 22
netstat -lntup|grep sshd
#centos7:
ssa(待研究)
避免權限過大,用普通用戶登錄
批量方案(分發、部署、執行命令、配置修改):
ssh key |puppet |saltstack
ssh key:
創建用戶和密碼
useradd skey &&\
echo '12345678'|passwd --stdin skey
在分發機上在普通用戶下創建公鑰私鑰:一把鑰匙(私鑰)打開多個鎖(公鑰)
1、su - skey
2、ssh-keygen -t dsa
3、ls ~/.ssh
4、ssh-copy-id -i .ssh/id_dsa.pub [email protected]
ssh-copy-id -i .ssh/id_das.pub "-p 12345 [email protected]"
客戶機:
1、ls ~/.ssh|wc -l (生成authorized_keys文件,文件名由/etc/ssh/sshd_config裡配置) 權限為600
2、生成記錄在分發機上的know_hosts文件
分發機分發文件:
1、scp -P22 sshkeytest [email protected]:~
2、ssh 192.168.137.7 whoami #執行一次後不需要密碼
touch sshallsend.sh &&\
cat >sshallsend.sh<<eof
#!/bin/sh
. /etc/init.d/functions
[ \$# -eq 1 ]||{
echo "USAGE:\$0 {FILENAME|DIRECTORY}"
exit 1
}
for n in 7 8 9
do
#r復制目錄,p保持屬性
scp -rp \$1 [email protected].\${n}:~ &>/dev/null
[ \$? -eq 0 ]&&{
action "\$0 192.168.137.\${n} is ok" /bin/true
}||{
action "\$0 192.168.137.\${n} is faile" /bin/faile
}
done
eof
cat >testfor <<eof
for n in 7 8 9
do
echo \${n}
echo \$?
done
eof
本文出自 “神奇的海螺” 博客,請務必保留此出處http://bilishell.blog.51cto.com/11756401/1811687