使用腳本來開機自動添加sshKey

前言

這算是我個人的第一篇博客吧,僅用于記錄個人開發(fā)與生活中的一些事情和心得,如果在你看到的時候,能夠?qū)δ惝a(chǎn)生一點幫助或者啟發(fā)的話,那就更值得慰藉了。剛開始寫博客,可能內(nèi)容算不得好、排版存在一些問題,請諒解。

需求產(chǎn)生的背景

由于我自己git的sshKey每次開機后都要重新添加,為了減少這個簡單且無腦的重復(fù)工作,就采用了編寫腳本來實現(xiàn)這個功能。

具體實現(xiàn)

首先就是寫一個腳本,在你自己的期望路徑建立一個腳本,寫入以下代碼:


#!/bin/sh   #聲明腳本語言類型

cd ~     #進入根目錄

ssh-add -l    #查看當前sshKey的列表,可以省略,

ssh-add -D    #添加前先清空列表

ssh-add ~/.ssh/id_gitlab    #添加你自己的sshKey,有多個sshKey就分別加

ssh-add ~/.ssh/id_github    #同上面的意思

可以說,通過這幾行命令,我的每次重復(fù)添加sshKey的需求就完成了。但是只是這樣的話,還是存在兩個問題。

難道我每次重啟完電腦都要手動執(zhí)行一次這個命令?那我寫一個腳本的作用豈不是大打折扣了?

我添加sshKey都是寫死的,難道我之后每次新加一個賬戶,就要重新添加一個sshKey?那豈不是相當不方便且不優(yōu)雅?(該問題不影響到使用,如果不介意之后再次添加或者不需要再次添加git賬戶,也可以忽略)

由此,我又添加了以下兩個操作:

1. 開機自啟腳本

首先,修改腳本的權(quán)限,在你腳本的路徑下,終端運行以下命令。( 將xx改成你自己的腳本名稱)


chmod 777 xx.sh

需要在腳本文件的簡介中,將打開方式設(shè)置為終端,并且將共享與權(quán)限全部修改至讀與寫。

修改打開方式和權(quán)限

然后點開設(shè)置->用戶和群組->點擊登錄項->將你的腳本加入進去。

添加登錄項

經(jīng)過這些步驟,就可以實現(xiàn)開機執(zhí)行腳本了。

2. “優(yōu)雅”的添加sshKey

想要優(yōu)雅的添加sshKey的前提就是你要優(yōu)雅的命名你的sshKey的名字…

假設(shè)以下的文件就是我的sshKey文件夾,通過以下代碼遍歷文件夾內(nèi)文件名。


cd ~/.ssh

path=$1

files=$(ls $path)

for fileName in $files; do

echo $fileName

done

其中$fileName就是文件名,此時我們需要篩選一下,我這邊命名是所有sshKey都帶有id_,所以可以獲取所有包含id_并且不包含.pub的文件名。然后將其添加至ssh列表中,如下:


#!/bin/sh

cd ~/.ssh

ssh-add -l

ssh-add -D

strA="id_"

strB=".pub"

path=$1

files=$(ls $path)

for fileName in $files; do     # 遍歷文件名

resultA=$(echo $fileName | grep "${strA}")     # 兩個判斷條件

resultB=$(echo $fileName | grep "${strB}")

if [[ "$resultA" != "" ]] && [[ "$resultB" == "" ]]

then

ssh-add ~/.ssh/$fileName    # 添加sshKey

fi

done

至此,所有的功能都已經(jīng)完成了,再也不用操心git上傳沒有權(quán)限了~
其實很多操作都可以使用腳本來完成,可以避免很多重復(fù)的操作,節(jié)省很多時間。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。