Как скопировать открытый ключ в Ваш сервер

Вот маленькая программа Python, которая может сделать это:

import sys

def only_contains_nulls(fobj, chunk_size=1024):
    first = True
    while True:
        data = fobj.read(chunk_size)
        if not data:
            if first:
                return 1  # No data
            else:
                return 0
        if data.strip("\0"):
            return 1
        first = False

if __name__ == '__main__':
    with open(sys.argv[1]) as f:
        sys.exit(only_contains_nulls(f))

И в действии:

$ printf '\0\0\0' > file
$ ./onlynulls file && echo "Only nulls" || echo "Non-null characters"
Only nulls
$ printf a >> file
$ ./onlynulls file && echo "Only nulls" || echo "Non-null characters"
Non-null characters

Можно проверить несколько файлов при помощи находки -exec, xargs, GNU parallel, и подобные программы. С другой стороны, это распечатает имена файлов, с которыми нужно иметь дело:

files=( file1 file2 )
for file in "${files[@]}"; do
    ./onlynulls "$file" || printf '%s\n' "$file"
done

Примите во внимание, что, если Вы собираетесь передать вывод этого к другой программе, имена файлов могут содержать новые строки, таким образом, необходимо разграничить его по-другому (подходяще, с \0).

Если бы у Вас есть много файлов, было бы лучше использовать опцию для параллельной обработки, так как это только читает один файл за один раз.

4
13.04.2017, 15:37
2 ответа
/usr/bin/ssh-copy-id: ERROR: No identities found

Эта команда только работает, если Вам создали идентификационные данные ранее через ssh-keygen.

"Общие нити: управление ключами OpenSSH, Часть 1 дюйм

5
27.01.2020, 20:54

Сначала используйте приведенную ниже команду на исходном сервере:

ssh-keygen

Вывод, как показано ниже:

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:

После этого использования команда ssh-copy-idдолжна работать.

0
27.01.2020, 20:54

Теги

Похожие вопросы