gitea服务器配置问题
本文最后更新于 550 天前,其中的信息可能已经有所发展或是发生改变。

在使用gitea的ssh协议操作远程仓库时,出现协议错误,报行长度字符串错误,展示的行长度字符串是This,这是nologin shell的输出,也就是运行gitea的用户使用的shell是禁止登录的nologin,所以无法使用ssh协议登录至系统。将shell改为sh后可以正常操作。

但是引入了一个问题,在gitea的web页面中,每一个用户都可以配置自己的ssh公钥,gitea会将这些公钥写入到gitea用户的.ssh/authorized_keys文件中,这意味着系统将会接受用户的公钥,允许它登录至系统。如果gitea用户的shell是交互式的shell,则任何人都可以得到交互式的shell,影响服务器安全。

深入了解之后,我发现这个问题是不存在的。因为gitea写入的公钥,带有一些修饰符:

command="/gitea/gitea-1.22.0-linux-amd64 --config=/gitea/custom/conf/app.ini serv key-2",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,no-user-rc,restrict

这些内容被gitea添加在公钥的前方,command中的内容是通过此公钥登录后将会执行的命令,这里执行了gitea的可执行文件,并传入了一些参数,应该是用于区分不同的用户。

而在这之后,则对此公钥施加了一些限制。

阻止了用户在登录时执行端口转发、X11 转发、代理转发和为 SSH 会话分配伪终端。

no-user-rc 禁止了用户的 shell 初始化文件(例如 .bashrc)的执行。

restrict 指定了这个密钥只能用于执行指定的命令,而不能进行一般的 shell 登录。

同时使用ssh来登录到gitea用户,被系统拒绝:

至此,所有疑惑已经全部解开。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇