С помощью awk
:
$ awk -v n=3 '{$1 = ($1 > n) ? ($1 % n) ? $1 % n : n : $1};1' <file
1 abcde
2 00
3 12
1 12
2 ghijkl
3 jsaslm
1 uawrns
2 abcde
3 \(%"!&/
1 $!"$&/(
3 !§%/(//
В файле authorized_keys
должна быть строка, содержащая содержимое id_rsa.pub
, а в файле known_hosts
должна быть строка, содержащая ключ хоста сервера. (Сервер обычно хранит свои ключи хоста в файле под /etc/ssh/
.)
Кроме того, id_rsa
должен как бы совпадать с id_rsa.pub
в том смысле, что они должны быть парой ключей, но если вы не исправите их вручную, именно так ssh -keygen всегда размещает их.
Судя по вашим комментариям к другим ответам, у вас может быть проблема с форматом ключа.
Верно, что криптографический ключ, созданный с помощью одной стандартизированной программы, математически такой же, как и ключ, созданный в другой. Однако для данного криптографического протокола требуются ключи в заданном формате.
Преобразование ключей
Ключи, сгенерированные в openssl
и выведенные в формате PEM, можно преобразовать в формат ssh с помощью программы ssh-keygen
.
ssh-keygen -i -m pem -f key.pem
Ключи, сгенерированные с помощью ssh -keygen, могут быть преобразованы в формат PEM:
ssh-keygen -e -m pem -f id_rsa.pub
Ключи PGP, сгенерированные в GPG, можно преобразовать в формат ssh с помощью опции --export-ssh-key
:
gpg --export-ssh-key <keyid>
Расположение клавиш
Как указано в других ответах, удаленной системе требуется открытый ключ, хранящийся в формате ssh в файле ~/.ssh/authorized_keys
. И локальная система требует, чтобы закрытый ключ был:
~/.ssh
или
ssh -i
или
ssh-add
или
sshcontrol
Сравнение открытых ключей
Чтобы сравнивать открытые ключи, эти ключи должны быть в одном формате. В противном случае ключи не будут выглядеть одинаково, даже если математически они являются одними и теми же объектами. Итак, поскольку вы указали, что сгенерировали свой открытый ключ ssh, используя openssl
в формате PEM, открытый ключ, вероятно, не будет выглядеть так же, как тот, который хранится в файле ~/.ssh/authorized_keys
сервера.
Ключи формата PEM выглядят следующим образом:
-----BEGIN RSA PUBLIC KEY-----
MIIBCgKCAQEAr/CvdghgkYT1Z38d
...
NlBcCYnrjvfFAj5HQydWc9CfP02rdtCIewIDAQAB
-----END RSA PUBLIC KEY-----
Открытые ключи SSH выглядят следующим образом:
ssh-rsa AAAAB3N...voZypjC/Y2UFwJie...t20Ih7
Открытые ключи PGP выглядят следующим образом:
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQENBFN/ZjIBCADad3mv...
...
nE42ZvKt632ZAQ==
=EKbR
-----END PGP PUBLIC KEY BLOCK-----
Итак, убедитесь, что вы сравниваете ключи одного и того же формата.