Linux 登陆用户时启动 ssh-agent 并在退出时关闭
2017-12-20 00:00
447 查看
摘要: 使用 Git/SSH/SCP 之类操作的时候,一般都是用 ssh 密钥的,但是每次都要先启动 ssh-agent 才能注册密钥,挺烦的,于是尝试了一下,能不能在登陆终端的时候自动启动 ssh-agent,然后关闭的时候自动kill掉 ssh-agent。
文/Fenying
使用 Git/SSH/SCP 之类操作的时候,一般都是用 ssh 密钥的,但是每次都要先启动 ssh-agent 才能注册密钥,挺烦的,于是尝试了一下,能不能在登陆终端的时候自动启动 ssh-agent,然后关闭的时候自动kill掉 ssh-agent。
自动启动的原理很简单,就是在
但是自动关闭就没那么简单了,我在 CentOS 7 里面,想在
并不起作用…… Google 了一下,发现可以在
成功了,现在登陆会自动启动 ssh-agent,并且退出的时候自动kill掉了。
然而,其实上面的还是有问题的,比如说,SCP命令无效,SFTP(使用FlashFXP)无法登陆等等。
原因是 ssh-agent 在启动和退出的时候都会在终端吼一嗓子,输出一句话……
所以,不让它说话就是了:
That's all.
文/Fenying
使用 Git/SSH/SCP 之类操作的时候,一般都是用 ssh 密钥的,但是每次都要先启动 ssh-agent 才能注册密钥,挺烦的,于是尝试了一下,能不能在登陆终端的时候自动启动 ssh-agent,然后关闭的时候自动kill掉 ssh-agent。
自动启动的原理很简单,就是在
~/.bashrc里面加入
eval $(ssh-agent -s)
但是自动关闭就没那么简单了,我在 CentOS 7 里面,想在
~/.logout里使用
eval $(ssh-agent -k)
并不起作用…… Google 了一下,发现可以在
~/.bashrc里面再写一句:
trap 'test -n "$SSH_AGENT_PID" && eval `/usr/bin/ssh-agent -k`' 0
成功了,现在登陆会自动启动 ssh-agent,并且退出的时候自动kill掉了。
然而,其实上面的还是有问题的,比如说,SCP命令无效,SFTP(使用FlashFXP)无法登陆等等。
原因是 ssh-agent 在启动和退出的时候都会在终端吼一嗓子,输出一句话……
所以,不让它说话就是了:
eval $(ssh-agent -s) > /dev/null trap 'test -n "$SSH_AGENT_PID" && eval `/usr/bin/ssh-agent -k` > /dev/null' 0
That's all.
相关文章推荐
- Linux踢出其他正在SSH登陆用户
- Linux下root用户ftp或telnet 登陆配置步骤与启动telnet服务
- Linux踢出其他正在SSH登陆用户
- ssh非正常关闭后,在会话中启动的进程会被强制退出
- linux 关闭SSH 连接用户
- Linux在终端启动程序关闭终端不退出的方法
- Linux启动或禁止SSH用户及IP的登录
- ssh登陆linux后台运行脚本不关闭
- linux下禁止某一用户使用ssh登陆但可使用sftp登陆
- Linux启动或禁止SSH用户及IP的登录,只允许密钥验证登录模式
- linux 关闭只允许SSH登陆(允许用户名、密码登陆)
- linux关闭在线登录用户和禁止root/IP直接ssh登录linux
- Linux系统启动过程和用户登陆过程分析
- CRT连接linux,新建的用户“oralce”可以登陆了,root就登录不了了。 /etc/ssh/sshd_config 找到 PermitRootLogin no 改为yes
- Linux启动与禁止SSH用户及IP的登录
- Linux踢出其他正在SSH登陆用户
- 配置linux用户实现禁止ssh登陆但可用sftp登录
- linux终端关闭时为什么会导致在其上启动的进程退出?
- Linux启动或禁止SSH用户及IP的登录
- linux 禁止普通用户使用su切换到root用户和禁止 root ssh登陆