Ger*_*yon 5 ubuntu ssh ssh-tunnel systemd
所以我设置了我的 ssh 变量来在 ~/.ssh/config 中做一个反向隧道,并调用主机 tunnel_reverse。我测试了以下命令以使用 autossh 创建持久隧道,并且它按预期工作:
autossh -M 0 -N tunnel_reverse
Run Code Online (Sandbox Code Playgroud)
创建远程主机反向隧道后,我能够从笔记本电脑连接到远程计算机。但是,当我尝试设置服务文件以便它可以在使用 systemd 启动时自动启动时,它不起作用。这是我创建的 /etc/systemd/system/tunnel.service 文件:
[Unit]
Description=AutoSSH to reverse tunnel
After=network.target
[Service]
Environment="AUTOSSH_GATETIME=0"
ExecStart=/usr/bin/autossh -M 0 -v -N tunnel_reverse
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
所以我开始了
systemctl daemon-reload
systemctl restart tunnel.service
systemctl status tunnel.service
Run Code Online (Sandbox Code Playgroud)
查看状态日志,似乎有一个错误,内容如下:
debug1: Server host key: blah blah blah
debug1: read_passpphrase: can't open /dev/tty: No such device or address
Host key verification failed.
ssh exited with error status 255; restarting ssh
Run Code Online (Sandbox Code Playgroud)
我哪里做错了?
小智 3
看起来 systemd 启动的 ssh 会话正在寻找密码。我假设当您手动运行 autossh 时,它使用公钥身份验证,并且公钥存储在执行此操作的用户的主目录中(您对 ~/.ssh 的引用没有说明它是哪个用户的主目录) )。systemd 执行的 autossh 应以同一用户身份运行,并有权访问同一 .ssh 目录,否则将无法使用相同的用户名/密码组合。
User=您可以通过将指令添加到tunnel.service 文件的部分来指定服务应运行的用户名Service。
| 归档时间: |
|
| 查看次数: |
2484 次 |
| 最近记录: |