Я пытаюсь войти в систему своего сервера с ssh ключами (я использую шпаклевку, чтобы сделать это), но каждый раз я пытаюсь соединиться, это говорит Network error: Connection refused
. Я полагаю, что это - что-то не так с открытым ключом, не уверенным все же. Ключ похож на это:
rsa-key-public AAAAB3NzaC1yc2EAAAABJQAAAQEAx+KoPhVxfBrnN8cFb+hG9MveY0cfNpn9mAcN
hsfkEvxeG2EqLRYtaXUBXPgl3uILvXYbqG7HSBq/kZe/AICn/aK89rCGAozEepde
aYmy9EtmfPU8pFgTrgMils8X6b5kPPxCBZ2pfeL/q4SUke+/xpV1x98py6PHM8Vm
JaBciqvaa89QLvWf3IUuxm7798WvGUPlSMtuE2wnYsyJ4W65nBCs4PCROpaPmcmq
iP0VF+Vm5vC3W/F00PC1w3R3BMdDoS2VJj7jQTR1Ralbn9cM185/pZY8lvkX4lEQ
MJvvwRM1Oy/g+J7+RbPR/XTrrRmKQq5mnWU0ICV5qvTnsc+Lyw==
но все в одной строке. Я использовал puttygen для создания ключа, и он был похож на это deafult:
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-public"
AAAAB3NzaC1yc2EAAAABJQAAAQEAx+KoPhVxfBrnN8cFb+hG9MveY0cfNpn9mAcN
hsfkEvxeG2EqLRYtaXUBXPgl3uILvXYbqG7HSBq/kZe/AICn/aK89rCGAozEepde
aYmy9EtmfPU8pFgTrgMils8X6b5kPPxCBZ2pfeL/q4SUke+/xpV1x98py6PHM8Vm
JaBciqvaa89QLvWf3IUuxm7798WvGUPlSMtuE2wnYsyJ4W65nBCs4PCROpaPmcmq
iP0VF+Vm5vC3W/F00PC1w3R3BMdDoS2VJj7jQTR1Ralbn9cM185/pZY8lvkX4lEQ
MJvvwRM1Oy/g+J7+RbPR/XTrrRmKQq5mnWU0ICV5qvTnsc+Lyw==
---- END SSH2 PUBLIC KEY ----
Вывод cat /etc/ssh/sshd_config
:
# Package generated configuration file
# See the sshd_config(5) manpage for details
# What ports, IPs and protocols we listen for
#Port 2222
# Use these options to restrict which interfaces/protocols sshd will bind to
ListenAddress 192.168.1.20
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes
# Lifetime and size of ephemeral version 1 server key
KeyRegenerationinterval 3600
ServerKeyBits 2048
# Logging
SyslogFacility AUTH
LogLevel INFO
# Authentication:
LoginGraceTime 120
PermitRootLogin prohibit-password
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile ~/.ssh/authorized_keys
# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes
# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no
# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no
# Change to no to disable tunnelled clear text passwords
PasswordAuthentication yes
# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
Xl1Forwarding yes
Xl1DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no
#MaxStartups 10:30:60
*Banner /etc/issue.net
# Allow client to pass locale environment variables
AcceptEnv LANG LC *
Subsystem sftp /usr/lib/openssh/sftp-server
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of *PermitRootLogin without-password*.
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM no
Вывод service ssh status
/ systemctl status ssh.service
:
peter@PM-server:-$ service ssh status
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/systemissh.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2017-04-03 16:02:13 CEST; 3h 37min ago
Main PID: 1577 (sshd)
Tasks: 7 (limit: 4915)
Memory: 23.1M
CPU: 3.774s
CGroup: /system.slice/ssh.service
├─1577 /usr/sbin/sshd -D
├─2351 sshd: peter [priv]
├─2359 sshd: peter@pts/0
├─2360 -bash
├─2395 systemctl status ssh.service
└─2400 pager
Apr 03 16:25:11 PM-server sudo[2030] :pam_unix(sudo:session): session opened for user root by peter(uid=0)
Apr 03 16:32:45 PM-server sudo[2030] :pam_unix(sudo:session): session closed for user root
Apr 03 16:50:45 PM-server sshd[2068] : Accepted password for peter from 192.168.1.19 port 57813 ssh2
Apr 03 17:19:14 PM-server sudo[2135] peter : TTY=pts/0 ; PWD/home ; USER=root ; COMMAND/bin/chown peter:peter peter
Apr 03 17:19:14 PM-server sudo[2135] :pam_unix(sudo:session): session opened for user root by peter(uid=0)
Apr 03 17:19:14 PM-server sudo[2135] :pam_unix(sudo:session): session closed for user root
Apr 03 19:25:09 PM-server sshd[2351] : Accepted password for peter from 192.168.1.19 port 56635 ssh2
Apr 03 19:26:05 PM-server sudo[2372] peter : TTY=pts/0 ; PWD/home/peter ; USER=root ; COMMAND/bin/systemctl
Apr 03 19:26:05 PM-server sudo[2372] :pam_unix(sudo:session): session opened for user root by peter(uid=0)
Apr 03 19:28:14 PM-server sudo[2372] :pam unix(sudo:session): session closed for user root
Вот помещен из sudo systemctl
.
Вывод sudo sshd -T
port 22
protocol 2
addressfamily any
listenaddress [::]:22
listenaddress 0.0.0.0:22
usepam yes
serverkeybits 1024
logingracetime 120
keyregenerationinterval 3600
x11displayoffset 10
maxauthtries 6
maxsessions 10
clientaliveinterval 0
clientalivecountmax 3
streamlocalbindmask 0177
permitrootlogin without-password
ignorerhosts yes
ignoreuserknownhosts no
rhostsrsaauthentication no
hostbasedauthentication no
hostbasedusesnamefrompacketonly no
rsaauthentication yes
pubkeyauthentication yes
kerberosauthentication no
kerberosorlocalpasswd yes
kerberosticketcleanup yes
gssapiauthentication no
gssapikeyexchange no
gssapicleanupcredentials yes
gssapistrictacceptorcheck yes
gssapistorecredentialsonrekey no
passwordauthentication yes
kbdinteractiveauthentication no
challengeresponseauthentication no
printmotd no
printlastlog yes
x11forwarding yes
x11uselocalhost yes
permittty yes
permituserrc yes
strictmodes yes
tcpkeepalive yes
permitemptypasswords no
permituserenvironment no
uselogin no
compression delayed
gatewayports no
usedns no
allowtcpforwarding yes
allowagentforwarding yes
allowstreamlocalforwarding yes
streamlocalbindunlink no
useprivilegeseparation yes
fingerprinthash SHA256
pidfile /var/run/sshd.pid
xauthlocation /usr/bin/xauth
ciphers chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256- ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com
macs umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256- etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac- 64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
versionaddendum none
kexalgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2- nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman- group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14- sha256,diffie-hellman-group14-sha1
hostbasedacceptedkeytypes ecdsa-sha2-nistp256-cert- v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521- cert-v01@openssh.com,ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert- v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh- ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa
hostkeyalgorithms ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2- nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh- ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ecdsa-sha2- nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,rsa-sha2-512,rsa- sha2-256,ssh-rsa
pubkeyacceptedkeytypes ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa- sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh- ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ecdsa-sha2- nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,rsa-sha2-512,rsa- sha2-256,ssh-rsa
loglevel INFO
syslogfacility AUTH
authorizedkeysfile .ssh/authorized_keys .ssh/authorized_keys2
hostkey /etc/ssh/ssh_host_rsa_key
hostkey /etc/ssh/ssh_host_ecdsa_key
hostkey /etc/ssh/ssh_host_ed25519_key
acceptenv LANG
acceptenv LC_*
authenticationmethods any
subsystem sftp /usr/lib/openssh/sftp-server
maxstartups 10:30:100
permittunnel no
ipqos lowdelay throughput
rekeylimit 0 0
permitopen any
Здесь Вы идете короткое руководство, касающееся целого процесса:
authorized_keys
файл$ ssh-keygen -t rsa -b 4096 Enter Generating public/private rsa key pair. Enter file in which to save the key (/home/$USER/.ssh/id_rsa): Enter Created directory '/home/$USER/.ssh'. Enter passphrase (empty for no passphrase): type your passphrase Enter Enter same passphrase again: retype your passphrase Enter $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys Enter $ chmod go-w ~/ Enter $ chmod 700 ~/.ssh Enter $ chmod 600 ~/.ssh/authorized_keys Enter $ ls -la ~/.ssh Enter drwx------ 2 user user 4096 апр 2 17:21 . drwxr-xr-x 3 user user 4096 апр 2 17:40 .. -rw------- 1 user user 738 апр 2 17:21 authorized_keys -rw------- 1 user user 3243 апр 2 17:15 id_rsa -rw-r--r-- 1 user user 738 апр 2 17:15 id_rsa.pub
Обратите внимание, что мы не должны использовать sudo
. Если authorized_keys
уже существует перенаправление вывода >>
просто добавит новую запись.
Сделайте тест - SSH к localhost
использование имени пользователя текущего пользователя:
$ chmod 600 ~/.ssh/id_rsa.pub
$ ssh $USER@localhost -i ~/.ssh/id_rsa -p 22 -v
Где: (1) можно опустить опции -i ~/.ssh/id_rsa -p 22
, потому что это значения по умолчанию, и (2) -v
включит подробный режим. Дополнительная информация может быть найдена в man ssh
.
Отметьте, этот тест передаст "только" с конфигурацией по умолчанию /etc/ssh/sshd_config
. Вот значение по умолчанию sshd_config
из Ubuntu 16.04.
id_rsa
закрытый ключ в .ppk
формат и использование этоГде .ppk
средства Закрытый ключ PuTTY.
puttygen
для Linux:Идея для этого дополнительного редактирования прибыла из этой темы, где был обсужден преобразование из .ppk
в совместимый формат OpenSSH.
Установка putty-tools
в Ubuntu. Откройте терминал и тип:
sudo apt install putty-tools
Преобразуйте закрытый ключ:
puttygen ~/.ssh/id_rsa -O private -o ~/.ssh/converted_id_rsa.ppk
Скопируйте преобразованный закрытый ключ (converted_id_rsa.ppk
) в Windows.
Используйте это .ppk
ключ с PuTTY для соединения с Ubuntu. Снимок экрана.
puttygen
для WindowsСкопируйте закрытый ключ (id_rsa
) в Windows.
Выполненный 'генератор ключа PuTTY' (puttygen.exe
) и нажмите Load
кнопка. Снимок экрана.
Переключатель к All Files (*.*)
и Open
Ваш сгенерированный в Ubuntu (id_rsa
) файл секретных ключей. Снимок экрана.
Введите пароль, если существует один, то нажмите OK
. Уведомление появится - нажимают OK
еще раз. Снимок экрана.
Править Key comment
и Key passphrase
если Вы нуждаетесь в нем и нажимаете Save private key
. Снимок экрана.
Сохраните свое новое .ppk
введите удобное местоположение. Снимок экрана.
Используйте это .ppk
ключ с PuTTY для соединения с Ubuntu. Снимок экрана.
Ссылки:
Обычно, Network error: Connection refused
средства, что сервер отказался от Вашего соединения SSH полностью . Это не имело проблемы с ключевой PuTTY используемой с ним, потому что это не заставило это далеко в процессе соединения даже беспокоиться ключами. Вместо этого это сразу отказалось от соединения. Это обычно происходит из-за сервера, не выполняющего сервер SSH (или повреждаемый сервер SSH), Вы имеющий неправильный порт или Вас имеющий неправильный адрес сервера.
Однако Вы говорите, что только получаете то сообщение об ошибке при соединении использования открытого ключа, в то время как соединение использования пароля хорошо работает. Для добавления открытого ключа для входящих соединений добавьте, следующая строка к ~/.ssh/authorized_keys
на сервере (создайте файл, если это не существует):
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAx+KoPhVxfBrnN8cFb+hG9MveY0cfNpn9mAcNhsfkEvxeG2EqLRYtaXUBXPgl3uILvXYbqG7HSBq/kZe/AICn/aK89rCGAozEepdeaYmy9EtmfPU8pFgTrgMils8X6b5kPPxCBZ2pfeL/q4SUke+/xpV1x98py6PHM8VmJaBciqvaa89QLvWf3IUuxm7798WvGUPlSMtuE2wnYsyJ4W65nBCs4PCROpaPmcmqiP0VF+Vm5vC3W/F00PC1w3R3BMdDoS2VJj7jQTR1Ralbn9cM185/pZY8lvkX4lEQMJvvwRM1Oy/g+J7+RbPR/XTrrRmKQq5mnWU0ICV5qvTnsc+Lyw==
Примечание, что это:
ssh-rsa
AAAAB3
), Вы в настоящее время используете (замените его новым при генерации нового) Это - немного другой формат ключей. Надлежащий способ преобразовать тот в другой состоит в том, чтобы использовать ssh-keygen
:
ssh-keygen -i -f /path/to/public.key
результат для Вашего ключа похож на это:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAx+KoPhVxfBrnN8cFb+hG9MveY0cfNpn9mAcNhsfkEvxeG2EqLRYtaXUBXPgl3uILvXYbqG7HSBq/kZe/AICn/aK89rCGAozEepdeaYmy9EtmfPU8pFgTrgMils8X6b5kPPxCBZ2pfeL/q4SUke+/xpV1x98py6PHM8VmJaBciqvaa89QLvWf3IUuxm7798WvGUPlSMtuE2wnYsyJ4W65nBCs4PCROpaPmcmqiP0VF+Vm5vC3W/F00PC1w3R3BMdDoS2VJj7jQTR1Ralbn9cM185/pZY8lvkX4lEQMJvvwRM1Oy/g+J7+RbPR/XTrrRmKQq5mnWU0ICV5qvTnsc+Lyw==
Поэтому на одной строке с ключевым идентификатором ssh-rsa
, вместо того Вы использовали. Также вопрос новых строк (не может быть ни одного).
Установите пакет openssh-сервера от Центра программного обеспечения Ubuntu. Или команда выполнения ниже в консоли, если Вы находитесь на Сервере Ubuntu без GUI:
склонные sudo - получают openssh-сервер установки
После того, как установленный, сервис SSH должен быть запущен автоматически. При необходимости можно запустить (или остановка, перезапуск) сервис вручную через команду:
сервис sudo ssh запускается
Номер порта 22 является значением по умолчанию. Для изменения порта базируйтесь разрешение входа в систему, можно отредактировать/etc/ssh/sshd_config файл через:
нано sudo/etc/ssh/sshd_config
Удалите "#" из sshd_config файла, который снабжается префиксом для Портирования 22