David Runge pushed to branch main at Arch Linux / Packaging / Packages / openssh


Commits:
2d012def by Allison Karlitskaya at 2025-07-16T23:13:20-04:00
Add sshd@.service to call ssh-keygen from vsock

When connecting to a new system (ie: one without ssh keys already
generated) via the vsock listener (created by systemd-ssh-generator),
we'll get this error in the journal:

Jun 26 14:40:46 archlinux sshd[367]: sshd: no hostkeys available -- exiting.

and the client will be disconnected.

That's because, although we provide a sshd.service which depends on our
sshdgenkeys.service, we don't do the same for sshd@.service (ie: "inetd
mode", `sshd -i`), which is how the vsock sshd runs.

Upstream is of the opinion that it's our responsibility to provide that
file.  See https://github.com/systemd/systemd/issues/37980

Add the missing file.

Fixes #12

Co-authored-by: David Runge <dv...@archlinux.org>

- - - - -


3 changed files:

- .SRCINFO
- PKGBUILD
- + sshd@.service


Changes:

=====================================
.SRCINFO
=====================================
@@ -32,6 +32,7 @@ pkgbase = openssh
        source = sshdgenkeys.service
        source = 70-openssh-restart-sshd.hook
        source = sshd.service
+       source = sshd@.service
        source = ssh-agent.service
        source = ssh-agent.socket
        source = sshd.pam
@@ -43,6 +44,7 @@ pkgbase = openssh
        sha256sums = 
27c4187d2456386112c9a3194d8c52a1ee9987662ffe54f94292af92b3c95d77
        sha256sums = 
3cbe1f95fd27780cafde7faf97b75bebd1a9621df21f55705374df0fa694a8bc
        sha256sums = 
9cea0ee6645062840fbaa4c64dcf6d7ad77d376eb0a1820d4f0dceecbb148419
+       sha256sums = 
6b8e88f8026a4966cf96f518ad4ce1cbd425f0e7dcd5433ed18980fb706aa668
        sha256sums = 
824bf888ad0cb20ff3c2e13292389eb355ab91c3d9cc2fe0c8c5c60365d4a9c7
        sha256sums = 
a16492e1eb9219d47a9053f0c83cdc323bff3c6f5b573bc6509ec40e40e4d04b
        sha256sums = 
633e24cbfcb045ba777d3e06d5f85dfaa06d44f4727d38c7fb2187c57498221d
@@ -53,6 +55,7 @@ pkgbase = openssh
        b2sums = 
8ae3e51b4a1a154cbf732575a49a358158432ab5de452c7609be7e0e457981406379881f061d4af71e98298b6a4193e02dd2fbf368376d84191aee8b1531e32e
        b2sums = 
bfb2d00d42f61efde208c7bf34c7e6943eafc21550de0e5f2d92df51fd465db220e21e031493a68844ecb843c98a5ef18aace41ec17be35cb0f0592864f4ae2f
        b2sums = 
7e771ce655e1e0ff3b19ff49de55f4097872b21c695fc0d18166d033d261d7ae25896ef7b7c6a940730aca1c5f9ef68e37da18c9df240da978c619f99f8351f8
+       b2sums = 
8e3a6e566e54c50e1dc5ef8d46ef778dc3634ab63cde18c789f1a049fee80561f066772a433a1093c7c7e19ae56abdb7c24765cb6cbfb7bac15bcaaca7aa7c2e
        b2sums = 
6a80552260bc016757725602638478345565e1466335da8a70e0b4e49fe2e9d3b863df83764696cd91637c17dd137ed7c26188a1d795af3d024d89c9c229829b
        b2sums = 
f161cdb54609bd4521d9517c5c9d97a87f7de5c7504bf46d870ee814624817050ca9f68d42a1e661ecc7c3ede1a440b5b159df18f3b16b3c2e90ecfbd0dfd258
        b2sums = 
1d24cc029eccf71cee54dda84371cf9aa8d805433e751575ab237df654055dd869024b50facd8b73390717e63100c76bca28b493e0c8be9791c76a2e0d60990a


=====================================
PKGBUILD
=====================================
@@ -49,6 +49,7 @@ source=(
   sshdgenkeys.service
   70-openssh-restart-sshd.hook
   sshd.service
+  sshd@.service
   ssh-agent.service
   ssh-agent.socket
   sshd.pam
@@ -60,6 +61,7 @@ 
sha256sums=('021a2e709a0edf4250b1256bd5a9e500411a90dddabea830ed59cef90eb9d85c'
             '27c4187d2456386112c9a3194d8c52a1ee9987662ffe54f94292af92b3c95d77'
             '3cbe1f95fd27780cafde7faf97b75bebd1a9621df21f55705374df0fa694a8bc'
             '9cea0ee6645062840fbaa4c64dcf6d7ad77d376eb0a1820d4f0dceecbb148419'
+            '6b8e88f8026a4966cf96f518ad4ce1cbd425f0e7dcd5433ed18980fb706aa668'
             '824bf888ad0cb20ff3c2e13292389eb355ab91c3d9cc2fe0c8c5c60365d4a9c7'
             'a16492e1eb9219d47a9053f0c83cdc323bff3c6f5b573bc6509ec40e40e4d04b'
             '633e24cbfcb045ba777d3e06d5f85dfaa06d44f4727d38c7fb2187c57498221d')
@@ -70,6 +72,7 @@ 
b2sums=('4ce353adf75aade8f4b2a223ad13e2f92cd23d1e60b4ee52bad0eaf036571229438cd97
         
'8ae3e51b4a1a154cbf732575a49a358158432ab5de452c7609be7e0e457981406379881f061d4af71e98298b6a4193e02dd2fbf368376d84191aee8b1531e32e'
         
'bfb2d00d42f61efde208c7bf34c7e6943eafc21550de0e5f2d92df51fd465db220e21e031493a68844ecb843c98a5ef18aace41ec17be35cb0f0592864f4ae2f'
         
'7e771ce655e1e0ff3b19ff49de55f4097872b21c695fc0d18166d033d261d7ae25896ef7b7c6a940730aca1c5f9ef68e37da18c9df240da978c619f99f8351f8'
+        
'8e3a6e566e54c50e1dc5ef8d46ef778dc3634ab63cde18c789f1a049fee80561f066772a433a1093c7c7e19ae56abdb7c24765cb6cbfb7bac15bcaaca7aa7c2e'
         
'6a80552260bc016757725602638478345565e1466335da8a70e0b4e49fe2e9d3b863df83764696cd91637c17dd137ed7c26188a1d795af3d024d89c9c229829b'
         
'f161cdb54609bd4521d9517c5c9d97a87f7de5c7504bf46d870ee814624817050ca9f68d42a1e661ecc7c3ede1a440b5b159df18f3b16b3c2e90ecfbd0dfd258'
         
'1d24cc029eccf71cee54dda84371cf9aa8d805433e751575ab237df654055dd869024b50facd8b73390717e63100c76bca28b493e0c8be9791c76a2e0d60990a')
@@ -153,6 +156,7 @@ package() {
 
   install -Dm644 ../sshdgenkeys.service -t "$pkgdir"/usr/lib/systemd/system/
   install -Dm644 ../sshd.service -t "$pkgdir"/usr/lib/systemd/system/
+  install -Dm644 ../sshd@.service -t "$pkgdir"/usr/lib/systemd/system/
   install -Dm644 ../ssh-agent.{service,socket} -t 
"$pkgdir"/usr/lib/systemd/user/
   install -Dm644 ../sshd.pam "$pkgdir"/etc/pam.d/sshd
   install -vDm 644 ../70-openssh-restart-sshd.hook -t 
"$pkgdir/usr/share/libalpm/hooks/"


=====================================
sshd@.service
=====================================
@@ -0,0 +1,16 @@
+# This is required to prevent systemd-ssh-generator from creating a default
+# file in its place.  The main change vs. upstream is the addition of Wants=
+# for our sshgenkeys.service, which systemd otherwise doesn't know about.
+
+[Unit]
+After=local-fs.target network.target sshdgenkeys.service
+Before=shutdown.target
+Conflicts=shutdown.target
+DefaultDependencies=no
+Description=OpenSSH Per-Connection Server Daemon
+Wants=sshdgenkeys.service
+
+[Service]
+ExecStart=-/usr/bin/sshd -i -o "AuthorizedKeysFile 
${CREDENTIALS_DIRECTORY}/ssh.ephemeral-authorized_keys-all .ssh/authorized_keys"
+ImportCredential=ssh.ephemeral-authorized_keys-all
+StandardInput=socket



View it on GitLab: 
https://gitlab.archlinux.org/archlinux/packaging/packages/openssh/-/commit/2d012def5ae47c69c34ddedf68329cb0eac9803d

-- 
View it on GitLab: 
https://gitlab.archlinux.org/archlinux/packaging/packages/openssh/-/commit/2d012def5ae47c69c34ddedf68329cb0eac9803d
You're receiving this email because of your account on gitlab.archlinux.org.


Reply via email to