ubuntu免密登录
每次 SSH 连服务器都要敲密码,免密烦。登录尤其是免密搞了一堆测试机的时候,`ssh user@192.168.1.101` 回车,登录等一秒,免密输密码,登录再回车。免密一天重复几十遍,登录手指头都麻了。免密其实 Ubuntu 上有个更省事的登录办法:把本机的公钥丢到目标机器的 `~/.ssh/authorized_keys` 里,之后直接 `ssh user@host` 就进去了,免密密码?登录不存在的。
这事原理不复杂。免密SSH 支持公钥认证,登录你本地生成一对密钥——私钥自己留着,免密公钥可以随便给。服务器拿到你的公钥后,登录时它会发一个随机挑战,你的客户端用私钥签名发回去,服务器用公钥验证签名。验证通过就放行。私钥不出本机,比密码安全得多,密码还可能被暴力猜解,私钥基本没这烦恼。
先看看本地有没有现成的密钥
打开终端,敲:
ls -l ~/.ssh/id_rsa.pub 如果显示文件存在,恭喜,跳过生成步骤。如果没有,或者你压根没折腾过 SSH,那就先生成一对。Ubuntu 默认用 RSA 或者更现代的 ed25519,我习惯用 ed25519,短小快:
ssh-keygen -t ed25519 -C "your_email@example.com" 一路回车就行。它会问你要不要设 passphrase,设了更安全,但每次用密钥还得输一次密码,那免密就免了个寂寞。个人测试环境直接空着回车,生产环境建议设一个,配合 ssh-agent 也能少输几次。生成完,`~/.ssh/` 下会多出 `id_ed25519`(私钥)和 `id_ed25519.pub`(公钥)。私钥权限必须是 600,不然 SSH 会拒绝使用,Ubuntu 一般自动设好,不放心就 `chmod 600 ~/.ssh/id_ed25519`。
把公钥送到目标机器上
最省事的命令是 `ssh-copy-id`。假设目标机器 IP 是 192.168.1.101,用户名 ubuntu:
ssh-copy-id ubuntu@192.168.1.101 它会提示你输一次目标机器的密码,然后把公钥追加到对方的 `~/.ssh/authorized_keys` 文件里。完事之后,再 `ssh ubuntu@192.168.1.101`,应该直接进去了,不再问密码。如果 `ssh-copy-id` 不存在(某些精简版 Ubuntu 没装),手动来也行:
cat ~/.ssh/id_ed25519.pub | ssh ubuntu@192.168.1.101 "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys" 这条命令看起来长,其实就是把本地公钥内容通过 SSH 传到对面,然后追加到文件里,顺便把权限设对。`~/.ssh` 目录权限得是 700,`authorized_keys` 得是 600,SSH 对权限很敏感,权限不对它直接忽略这个文件,你查半天日志才发现是权限问题。
几个容易踩的坑
有次我帮同事配,死活不生效。`ssh -v` 看调试日志,发现服务器压根没读 `authorized_keys`。原因是那台机器的 `/home/ubuntu` 目录权限是 777,SSH 认为其他用户可写,直接拒绝使用该目录下的密钥文件。改成 755 就好了。所以权限链条要完整:家目录不能组或其他用户可写,`.ssh` 目录 700,`authorized_keys` 600,私钥 600。一条条对。
还有时候是 SELinux 或者 AppArmor 在捣乱,不过 Ubuntu 桌面和服务器默认 AppArmor 对 SSH 的约束不算严,一般碰不到。真碰到了,`aa-status` 看看有没有相关 profile,临时 `sudo aa-complain /usr/sbin/sshd` 能排查。
另外,如果你改了 SSH 端口,`ssh-copy-id` 要加 `-p` 参数:`ssh-copy-id -p 2222 ubuntu@host`。忘了加就会连默认 22 端口,然后超时。
想更懒一点?配个别名
免密之后,每次还要敲一长串 IP 和用户名也烦。在 `~/.ssh/config` 里加几行:
Host test101 HostName 192.168.1.101 User ubuntu IdentityFile ~/.ssh/id_ed25519 保存后,直接 `ssh test101` 就完事。多个机器就多写几段,管理起来清爽。我自己的 config 里塞了十几台机器,名字按用途起,比如 `db-prod`、`web-staging`,比记 IP 强多了。
免密登录本身不复杂,核心就是公钥放对位置、权限别乱。配好之后,脚本里 `scp`、`rsync` 也不用再交互输密码,自动化顺手就起来了。花五分钟弄一次,省下的是后面几百次的敲键盘时间。
(责任编辑:探索)
-
移动营业厅里最热闹的角落,永远是那面贴满号码的玻璃墙。我见过一个中年男人,盯着尾号“888”的号码看了整整十分钟,最后叹了口气走开——不是买不起,是嫌它前面缀着的那串数字不够体面。这场景比任何市场调研
...[详细]
-
网站死链检测这事儿,说穿了就是给网站做体检。上周我帮朋友排查一个电商站,后台数据显示跳出率飙到78%,客户在支付页面反复报错。查了半天,罪魁祸首是个三年前的产品页——那个链接指向的URL早就被删了,但
...[详细]
-
2017年,Equifax公司因一个未修补的SQL注入漏洞,泄露了1.43亿美国人的社保号码、出生日期和家庭住址。这家公司市值蒸发超过60亿美元。而攻击者做的事,本质上只是往一个查询参数的URL后面加
...[详细]
-
去年秋天,我陪一个朋友去派出所处理一起邻里纠纷的笔录。他全程紧张,签完字后反复问民警:“这会不会留案底?影响我孩子考公务员吗?”民警头都没抬,甩了一句:“录口供签字是程序,不是犯罪记录,你怕什么?”
...[详细]
-
如果一个网站存在csrf漏洞 可以通过 一个链接,偷走你的登录态。这听起来像魔术,但CSRF跨站请求伪造)就是这么干的——它不偷你的密码,它直接借用你浏览器里还热乎的Cookie,替你在别处“发号施令
...[详细]
-
南昌航空大学官网的首页,永远是一张蓝天下的停机坪照片。我盯着那架老式歼击机看了很久——它停在那里,机头微微上扬,像随时要冲进屏幕里。旁边滚动着“嫦娥七号”探测器某部件研发成功的新闻,再往下拉,是学
...[详细]
-
凌晨三点,我蹲在小区垃圾站旁边,手里攥着一根铁丝。别误会,我不是要撬谁家锁——我在研究那台被扔掉的旧路由器。外壳裂了,天线断了一根,但电路板上的芯片还泛着光。这玩意儿要是能通电,理论上就能进邻居家网络
...[详细]
-
我电脑里存着一个叫“3D演示视频短片”的文件夹,里面躺着大概40多部片子,总容量超过200GB。别误会,这些不是那种戴着红蓝眼镜看的商业大片,而是各家公司为了展示自家软件或硬件能力,专门制作的工程演示
...[详细]
-
凌晨三点,我盯着屏幕上的M2服务器控制台,手边的红牛已经温了。那个叫"沙巴克城主"的玩家ID——一个连转生等级都没满的小号——正站在土城安全区,身后跟着一排穿戴整齐的GM套装角色。他打字喊话:"收保
...[详细]
-
python网站制作 我用Python做网站,最初是被逼的。老板丢来一个内部工具需求,要求两周上线,预算为零。用PHP?我只会改WordPress模板。用Node?那会儿连npm都装不利索。最后翻出大
...[详细]

1xweb安全测试题神州数码
怎么在搜索的时候去掉广告和推广
里有黑帽
cmd5在线解密网站
