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