![(Open)SSH 登录名可以超过 30 个字符吗?](https://linux22.com/image/682329/(Open)SSH%20%E7%99%BB%E5%BD%95%E5%90%8D%E5%8F%AF%E4%BB%A5%E8%B6%85%E8%BF%87%2030%20%E4%B8%AA%E5%AD%97%E7%AC%A6%E5%90%97%EF%BC%9F.png)
我必须通过 SSH 登录到 Web 托管服务器。不幸的是,登录名等于域名,长度超过 30 个字符。基于 Debian 的 Linux 系统上的 OpenSSH 客户端在两种语法上都将登录名限制为 30 个字符:
ssh [email protected]
ssh -l login example.com
SSH 协议的规格有限制吗?这仅仅是 OpenSSH 的限制吗?这是基于 unix 的系统用户名的限制吗?
有没有什么办法可以解决这个限制?
答案1
对于主机,您可以通过man useradd
或检查 LOGIN_NAME_MAX getconf LOGIN_NAME_MAX
,在 Linux 上大多数情况下限制为 32 个字符。alias-hostname.example.com 但是,一种可能的解决方法是将您的用户名放入文件中~/.ssh/config
。
我不知道 OpenSSH 是否可以处理配置文件中的较长用户名。但值得一试。
Host alias-hostname.example.com
HostName realname.example.com
Port 875
User reallylongusername
- 仅当您在备用端口上拥有 SSH 服务时才需要端口(这是很好的做法)。
- 如果您想用另一个名称来引用 SSH 主机,则可以使用 Host。当您希望多个 SSH 配置指向同一服务器但使用不同的用户名时,此方法非常常用。
有了文件后,您可以使用或~/.ssh/config
与主机通信,而无需在命令行上指定或其他选项。制表符补全也将开始对主机名起作用,因此您可以键入,它将扩展为。ssh alias-hostname.example.com
ssh realname.example.com
reallylongusername
ssh alias[tab]
ssh alias-hostname.example.com