我知道有 authorized_keys 这回事,但是总会有没有 key 只能密码登陆的状况.
目前是给常用的机器上 authorized_keys,然后在/usr/local/bin
加脚本,存储为 sshxxx,
但还是比较麻烦
ps: 类似 xshell 这样的.
![]() | 1 zhjits 2015-12-24 11:57:12 +08:00 via Android ![]() |
![]() | 2 jarlyyn 2015-12-24 11:59:24 +08:00 firessh? |
![]() | 3 linhua 2015-12-24 12:06:34 +08:00 sshpass |
4 cyneuzk 2015-12-24 12:07:57 +08:00 via iPhone securecrt |
![]() | 5 bingwenshi 2015-12-24 12:10:56 +08:00 那么,是什么场景只能用帐号密码,而不能用 key 呢? |
6 zen9073 2015-12-24 12:17:29 +08:00 你需要的是 .ssh/config https://book.9073.me/linux/openssh.html |
![]() | 7 herozem OP @bingwenshi 额,这个是很少. 但是还有的情况时,有 key,还要输入 key 的密码. 这个虽然也可以用 sshagent 实现,但是还是比较麻烦-.- 主要是之前习惯了 xshell |
![]() | 8 wweir 2015-12-24 12:38:49 +08:00 via Android 新机器上手第一件事 ssh-copy-id , 抱歉我不懂你的苦 |
![]() | 10 herozem OP @wweir 所以你每次还是要输入 ssh root@... -p xxx, 然而 xshell 早就 Alt+o, enter 登陆进去了 |
![]() | 13 nowcoder 2015-12-24 12:49:11 +08:00 securecrt |
14 SpicyCat 2015-12-24 14:57:41 +08:00 用 Linux 就要用 Linux 的方式。 sshagent, ~/.ssh/config 配置好,每次开机只需要输入一次 key 的 passphrase, 简单方便。 |
![]() | 15 xcodebuild 2015-12-24 15:02:45 +08:00 @herozem ssh-copy-id 了你要是想给 zsh 绑定个 alt+o 就进去了,,,都不用 enter 。 |
![]() | 16 herozem OP @codefalling 额,好吧,你针对的是一台机器,这样做挺方便. 但是机器多起来就不一样了 |
![]() | 17 vonnyfly 2015-12-24 16:04:27 +08:00 ssh 可以在.ssh/config 里定义好. 然后 ssh XXX Host XXX HostName xxx.xxx.xxx User root IdentityFile ~/.ssh/id_rsa PasswordAuthentication ...(没测试) |
![]() | 18 GNiux 2015-12-24 16:10:28 +08:00 via iPhone ssh-keygen 的时候,要求输入新密码时,不要不要,直接回车。 |
![]() | 21 wxm4ever 2015-12-24 16:31:33 +08:00 > @wweir 所以你每次还是要输入 ssh root@... -p xxx, 然而 xshell 早就 Alt+o, enter 登陆进去了 xshell 的 alt o 和 linux 定义一个 alias 不是一样的原理么, 并不觉得我通过 aliasl 连 ssh 和你 alt o 有什么速度上的明显差异。 |
![]() | 22 kmahyyg 2015-12-24 16:45:18 +08:00 安卓平台有吗?搭车…… |
![]() | 24 wweir 2015-12-24 20:38:46 +08:00 via Android @herozem 抱歉,目前在用 linux 桌面,不用 xshell 。 偷偷告诉你,我有个习惯,在命令后面加注释,登用 ssh 是用 ctrl+r ssh 机器名。 非要说快捷的话,感觉 win+v 连 vpn 还可以。 |
![]() | 25 loading 2015-12-24 20:40:40 +08:00 via Android 有个叫做 fuck 的神奇脚本。 |
![]() | 27 loading 2015-12-24 21:37:49 +08:00 via Android 其实你的需求可能是 alias |
![]() | 28 kfll 2015-12-24 21:41:06 +08:00 via iPhone keyring |
![]() | 29 congeec 2015-12-24 21:52:38 +08:00 四种方式够你用了,自己搜 expect sshpass ssh-copy-id ssh_config |
![]() | 30 darluc 2015-12-24 22:37:39 +08:00 自己写一个 shell 脚本: ``` #!/usr/bin/expect spawn ssh [email protected] expect -re " password:" send "password\r" interact ``` |
![]() | 31 LINAICAI 2015-12-24 22:40:06 +08:00 ssh 登录还需要输入密码??? |
![]() | 32 LINAICAI 2015-12-24 22:43:23 +08:00 非得用密码登录的, ssh 是摆设了啊,用 config ? |
33 daybyday 2015-12-24 22:53:44 +08:00 /etc/hosts ssh-copy-id -i user@t-server1 alias server1='ssh user@t-server1' |
35 nevernet 2015-12-25 09:53:48 +08:00 看到楼上的大部分回答都笑了 |
![]() | 36 herozem OP |
![]() | 37 liujiangbei 2015-12-25 13:49:09 +08:00 expect sshpass ssh-copy-id ssh_config |
![]() | 39 ldsink 2015-12-25 17:25:29 +08:00 迷之问题。(#′)凸 * 要避免输入密码, ssh-copy-id 直接帮你复制公钥了,压根不需要操心 authorized_keys 。 * 要管理多台机器,这里我理解是要能人工的、快捷的登陆到不同的机器上执行一些操作(大批量部署肯定是部署脚本了)。这么多台机器总有个区分的名字什么的吧,除了第一次要 ssh XXX@XXX ,后面都是直接 Crl + R + 一般不超过三个字母 (常用的一般就一个)+ Enter ,不超过六个键就搞定的事情,还要特意装个工具?打开终端还要按三个键呢。 剩下的问题就只有如何连接那些基于奇怪原因不能添加公钥,只能用密码的服务器(数量不明)。 我的 Deepin Terminal 有个 SSH 连接管理的功能,设置好以后,每次 Ctrl + 9 切出界面选好服务器 Enter 就 OK 了。我之前一直不知道这种鸡肋功能有啥用,今天发现用武之地了。 PS: 我没用过 XShell ,主系统 Deepin 。我用上面的方法弄过三十多台服务器超过一年时间没任何问题。 |
![]() | 40 WD40 2015-12-26 22:24:00 +08:00 |
![]() | 42 shaojz2005 2019-01-02 18:39:08 +08:00 @WD40 这个是针对窗口环境的吗? |
![]() | 43 WD40 2019-01-02 23:06:12 +08:00 @shaojz2005 既然是 Gnome 然是形境咯 。 |