Fish shell或bash shell下的ssh-agent现有会话探测脚本:修订间差异
来自三线的随记
小无编辑摘要 |
小无编辑摘要 |
||
第29行: | 第29行: | ||
Linux bash:Linux | Linux bash: | ||
<pre><nowiki> | |||
#!/usr/bin/env bash | |||
####################################################### | |||
# Author: SanXian | |||
# To find the exists ssh-agent connection or create | |||
# a new ssh-agent connection for macOS with fish shell | |||
# version: 1.5 | |||
####################################################### | |||
#set base_dir "/var/folders/4w/hx1kgdwd2ll9chvbzv6y70r80000gn/T" | |||
# Linux | |||
base_dir=/tmp/ssh-*/agent.* | |||
# macOS | |||
#set base_dir $TMPDIR/ssh-*/agent.* | |||
agent_paths=`sh -c "ls -1 --color=never $base_dir 2>/dev/null"` | |||
for i in $agent_paths | |||
do | |||
agent_file=`echo -n $i | grep --color=never -Eo "agent.*"` | |||
echo "found: $agent_file" | |||
PID=`echo -n $agent_file | awk -F . '{print $2 + 1}'` | |||
echo PID: $PID | |||
export SSH_AGENT_PID=$PID | |||
export SSH_AUTH_SOCK=$i | |||
env | grep -i ssh_ | |||
done | |||
if [[ -z $agent_paths ]] | |||
then | |||
# ssh agent sock not found | |||
echo "ssh agent sock file not found, creating" | |||
eval `ssh-agent -t 4h` | |||
#ssh-add -t 0 | |||
ssh-add -t 360d | |||
fi | |||
</nowiki> | |||
</pre> | |||
[[分类:Linux]] | [[分类:Linux]] | ||
[[分类:MacOS]] | [[分类:MacOS]] | ||
[[分类:SSH]] | [[分类:SSH]] |
2022年6月9日 (四) 22:52的版本
一个随便糊的用于发现设备上现有的ssh-agent会话脚本,方便在不同的terminal tab中复用一个ssh-agent
适配: macOS + fish shell
#!/usr/bin/env fish ####################################################### # Author: SanXian # To find the exists ssh-agent connection or create # a new ssh-agent connection for macOS with fish shell ####################################################### #set base_dir "/var/folders/4w/hx1kgdwd2ll9chvbzv6y70r80000gn/T" set base_dir $TMPDIR for i in (sh -c "ls -1 --color=never $base_dir/ssh-*/agent* 2>/dev/null") set agent_file (echo -n $i | grep --color=never -Eo "agent.*") echo "found: $agent_file" set PID (echo -n $agent_file | awk -F . '{print $2 + 1}') echo PID: $PID export SSH_AGENT_PID=$PID export SSH_AUTH_SOCK=$i env | grep -i ssh_ exit end # ssh agent sock not found echo "ssh agent sock file not found, creating" eval (ssh-agent -c -t 4h)
Linux bash:
#!/usr/bin/env bash ####################################################### # Author: SanXian # To find the exists ssh-agent connection or create # a new ssh-agent connection for macOS with fish shell # version: 1.5 ####################################################### #set base_dir "/var/folders/4w/hx1kgdwd2ll9chvbzv6y70r80000gn/T" # Linux base_dir=/tmp/ssh-*/agent.* # macOS #set base_dir $TMPDIR/ssh-*/agent.* agent_paths=`sh -c "ls -1 --color=never $base_dir 2>/dev/null"` for i in $agent_paths do agent_file=`echo -n $i | grep --color=never -Eo "agent.*"` echo "found: $agent_file" PID=`echo -n $agent_file | awk -F . '{print $2 + 1}'` echo PID: $PID export SSH_AGENT_PID=$PID export SSH_AUTH_SOCK=$i env | grep -i ssh_ done if [[ -z $agent_paths ]] then # ssh agent sock not found echo "ssh agent sock file not found, creating" eval `ssh-agent -t 4h` #ssh-add -t 0 ssh-add -t 360d fi