您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關ssh服務如何為web生產服務器保駕護航,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
我們給自己的博客搭建一個站點,配置lnmp/lamp運行環境可以跑起來,差不多就完事了。但是當我們做的是一個中型或者大型項目,在它需要部署到生產服務器上線運營時,賬戶安全方面需要做些什么?
apt-get install openssh-server
/etc/init.d/ssh start
ssh martist@192.168.123.3 //ssh遠程連接服務器,需要輸入用戶密碼
一個中型甚至大型的的項目,往往需要對多臺服務器進行管理,如生產服務器,測試服務器,管理服務器等等。因此需要對每一臺服務器的主機名進行管理,通過修改各個服務器的/etc/hostname文件修改本地系統名,重啟可以看到。
linux或Mac下生成密鑰的命令是 ssh-keygen -t rsa
默認生成路徑在家目錄的.ssh目錄下。id_rsa 文件保存的是本機的私鑰,id_rsa.pub文件保存的是公鑰。
ifconfig命令查看服務器的IP地址,注意如果你是用的是阿里云ECS,此處查看到的是內網IP而非公網IP。
在被登錄的服務器的家目錄下的.ssh目錄(如果不存在就創建一個)創建一個authorized_keys 文件,并將生成的公鑰文件的內容放到里面,就可以在本地使用密鑰登陸這臺服務器了。
ssh martist@192.168.123.3 //此時不需要輸入用戶名密碼
如果我們關閉密碼登陸,轉而使用ssh密鑰登錄,更可以確保服務安全(注意:關閉密碼登陸前,一定要確保能夠正常使用ssh密鑰登陸)。
找到/etc/ssh/sshd_config 修改PasswordAuthentication 屬性 yes。
在第52行,yes改為no,禁用密碼登陸(慎用)。
線上:阿里云ECS云服務器 Ubuntu14.04lts
Manager服務器生成ssh密鑰
ssh-keygen -t rsa //一路回車
生成的密鑰保存在家目錄下,進入.ssh目錄下,
ls//查看文件 id_rsa id_rsa.pub know_hosts
Manager服務器上在 /etc/hosts 文件里加上重定向的名字,如測試服務器,DB服務器和Manager服務器分別起一個重定向名字便于管理多臺web服務器。
修改本地定向網絡ip(阿里云的內網ip)的文件
vi /etc/hosts //寫入 10.162.48.184 FWEB1 //每次在終端輸入‘FWEB1’,就代表‘10.162.48.184’。
在mannager服務器上,試一下ssh登錄web1服務器
ssh root@FWEB1
退出
exit
在mannager服務器上,試一下文件上傳web1服務器
scp ./id_rsa.pub root@FWEB1:/root
現在還是需要輸入密碼,不過等一會把密鑰加到web服務器上,再從manager登錄web服務器,就不需要輸入密碼了。
在web1服務器,家目錄下創建.ssh目錄
ssh root@FWEB1 // 輸入密碼 mkdir ~/.ssh
在web1服務器,把id_rsa.pub傳遞到.ssh/目錄下
cat id_rsa.pub >> .ssh/id_rsa.pub
此時,再從id_rsa.pub設置到web服務器(FWEB1)本地.
文件改名
mv id_rsa.pub authorized_keys
給執行權限
chmod 600 ./authorized_keys
退出ssh遠程登錄
exit
此時回到manager服務器
ssh root@FWEB1 //此時密碼不用輸就可以進入FWEB1
隨便上傳個文件,試試
scp know_hosts root@FWEB1:/tmp/
此后,在manager服務器向web服務器,scp傳送東西,不需要再輸入密碼了。
原理:manager服務器私鑰自己留著,把公鑰給所有的web,DB,備份服務器,就可以便捷管理了。
找到/etc/ssh/sshd_config 修改PasswordAuthentication 屬性 yes。在第52行,yes改為no,禁用密碼登陸。
修改sshd_config文件中ssh端口,ssh端口默認為 22. 把端口號改為1000以上的數值。
默認:Port:22 改為:Port 1678
:wq //退出vi編輯器。
reboot //重啟生效
ssh登錄目的服務器命令
root@FWEB1
有點麻煩?可以創建自己的別名
vi ~/.bash_profile //寫入 alias fewb1='ssh root@FWEB1 -p 1678' //(-p 為端口號)
好,:wq 保存退出。
使他生效
source .bash_profile
查看別名
alias
在manager服務器下,把某個文件夾下全部文件推送到web服務器。
scp -p 1678 ./* root@FWEB1:/tmp/ ~~~~
//(需要被傳送文件的web服務器有這個文件夾)
把服務器其上的東西上傳上去,是這樣寫, 把web服務器的東西下載到本地,只要把這倆目錄倒過來,就可以了。
技巧:
cd ~ mkdir sh vi pushcode.sh //在這里寫shell腳本
shell腳本的寫法,開頭‘#!’,后面是 shell可執行命令的位置。
#!/bin/sh scp -p 1678 ./var/www.machuang.name/* root@FWEB1:/var/www/machuang.name
好!:wq 保存推出。
給執行權限
chmod 755 /root/sh/pushcode.sh
Ls查看下
ls /root/sh
此時看到pushcode.sh變成綠色,就對了。以后敲入這段命令,就可以完成上傳代碼的功能了。
/root/sh/pushcode.sh
就可以執行腳本內的命令了,此時再加一個別名。
cd ~ vi .bash_profile //寫入 alias pushcode='/root/sh/pushcode.sh' //:wq 保存退出
好,使它生效,否則要重啟才能生效。
source .bash_profile
上傳代碼:
pushcode
這樣一個具備業務邏輯的ssh服務使用就展現在你面前了,單一的使用一個工具并不顯得立體,多種linux軟件和命令有機結合在一起才能迸發出更大的能量。
關于ssh服務如何為web生產服務器保駕護航就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。