Ubuntu ssh 自动登录脚本

首先,把本地的 ssh-keygen 生成的 ssh 公钥内容追加到你所要登录的服务器的 authorized_hosts 文件里面去,这样就可以直接 ssh 登录了。

然后在 /usr/local/bin/ 目录下创建 docker-dev 文件,输入下面的命令:

#!/usr/bin/expect
  
set timeout 3
spawn ssh <username>@<servername>
send "cd /home/webserver/webapp/\r"
interact

然后给予执行权限,之后就可以直接执行登录

$ sudo chmod +x docker-dev
$ docker-dev
// login success

如果出现这个错误,说明 expect 没装,安装一下就好了

/usr/bin/expect: bad interpreter: No such file or directory

安装 expect

$ sudo apt install expect

参考

2019/09/26 posted in  折腾

Linux 命令行显示当前 Git 分支

~/.bashrc 文件中添加以下内容:

#show the current git branch 
find_git_branch () {
    local dir=. head
    until [ "$dir" -ef / ]; do
        if [ -f "$dir/.git/HEAD" ]; then
            head=$(< "$dir/.git/HEAD")
            if [[ $head = ref:\ refs/heads/* ]]; then
                git_branch="(*${head#*/*/})"
            elif [[ $head != '' ]]; then
                git_branch="(*(detached))"
            else
                git_branch="(*(unknow))"
            fi  
            return
        fi  
        dir="../$dir"
    done
    git_branch=''
}

PROMPT_⌘="find_git_branch; $PROMPT_⌘"
PS1="\u@\h:\w\[\033[0;32m\]\$git_branch\[\033[0m\] \$ "
2019/09/21 posted in  折腾

设置 SSH Key 登录服务器和 Git 服务器

设置 SSH Key 登录服务器

通过 ssh 登录服务器,一直都是用的账号和密码,今天看到一篇文章说这样不安全,使用 ssh key 的方式登录则是更好的选择,因此,研究实践了一下,并记录在这里。

Ssh key 的基本原理是这样的:在你的本机上创建两个Key文件,一个是私钥,一个是公钥,私钥放在本地,公钥放在远程服务器。当你通过ssh key登录到远程服务器时,远程服务器使用公钥创建了一个加密的随机消息,然后发送到本地机器,本地机器使用私钥解密消息,发送解密的消息到远程服务器。远程服务器验证这个解密后的消息,然后授权访问。实际过程比这个复杂,但我们这里理解大概就可以了。

Read more   2018/05/03 posted in  折腾