我知道有 authorized_keys 这回事,但是总会有没有 key 只能密码登陆的状况.
目前是给常用的机器上 authorized_keys,然后在/usr/local/bin
加脚本,存储为 sshxxx,
但还是比较麻烦
ps: 类似 xshell 这样的.
1
zhjits 2015-12-24 11:57:12 +08:00 via Android 1
|
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 當然是圖形環境咯 。
|