Права на ~/.ssh

При переносе SSH-ключей с одной машины на другую, права теряются. Я постоянно забываю, для какого типа файлов какие права, потому вот сниппет, который делает всё как надо:

chmod 700 ~/.ssh && \
chmod 600 ~/.ssh/* && \
chmod 644 ~/.ssh/*.pub

Если нужны пояснения, то они есть в man ssh. Ниже выдержки оттуда.

~/.ssh/
[...] recommended permissions are read/write/execute for the user, and not accessible by others.

То есть, 700.

~/.ssh/authorized_keys
[...] recommended permissions are read/write for the user, and not accessible by others.

~/.ssh/config [...] this file must have strict permissions: read/write for the user, and not writable by others.

И тут 600.

~/.ssh/id_ecdsa
~/.ssh/id_ecdsa_sk
~/.ssh/id_ed25519
~/.ssh/id_ed25519_sk
~/.ssh/id_mldsa44_ed25519
~/.ssh/id_rsa
[...] should be readable by the user but not accessible by others.

Тут предполагается, что нужно 400, но по умолчанию ключи сами создаются с правами и на чтение, и на запись, потому 600 — норм.

~/.ssh/id_ecdsa.pub
~/.ssh/id_ecdsa_sk.pub
~/.ssh/id_ed25519.pub
~/.ssh/id_ed25519_sk.pub
~/.ssh/id_mldsa44_ed25519.pub
~/.ssh/id_rsa.pub
[...] can (but need not) be readable by anyone.

То есть, как минимум 444, но это публичные ключи, потому не страшно, что будут права на запись для своего пользователя. Более того, они с такими правами по умолчанию и осоздаются. А потому — 644.