J'essaie de me connecter à mon serveur avec des clés ssh (j'utilise PuTTY pour le faire), mais chaque fois que j'essaie de me connecter, il indique Network error: Connection refused
. Je crois que quelque chose ne va pas avec la clé publique, mais pas sûr. La clé ressemble à ceci:
rsa-key-public AAAAB3NzaC1yc2EAAAABJQAAAQEAx+KoPhVxfBrnN8cFb+hG9MveY0cfNpn9mAcN
hsfkEvxeG2EqLRYtaXUBXPgl3uILvXYbqG7HSBq/kZe/AICn/aK89rCGAozEepde
aYmy9EtmfPU8pFgTrgMils8X6b5kPPxCBZ2pfeL/q4SUke+/xpV1x98py6PHM8Vm
JaBciqvaa89QLvWf3IUuxm7798WvGUPlSMtuE2wnYsyJ4W65nBCs4PCROpaPmcmq
iP0VF+Vm5vC3W/F00PC1w3R3BMdDoS2VJj7jQTR1Ralbn9cM185/pZY8lvkX4lEQ
MJvvwRM1Oy/g+J7+RbPR/XTrrRmKQq5mnWU0ICV5qvTnsc+Lyw==
mais tout en une seule ligne. J'ai utilisé puttygen pour créer la clé et cela ressemblait à ceci:
---- 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 ----
Sortie de 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
Voici la sortie de Sudo systemctl
.
Sortie de 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 [email protected],aes128-ctr,aes192-ctr,aes256- ctr,[email protected],[email protected]
macs [email protected],[email protected],hmac-sha2-256- [email protected],[email protected],[email protected],umac- [email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
versionaddendum none
kexalgorithms [email protected],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- [email protected],[email protected],ecdsa-sha2-nistp521- [email protected],[email protected],ssh-rsa-cert- [email protected],ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh- ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa
hostkeyalgorithms [email protected],ecdsa-sha2- [email protected],[email protected],ssh- [email protected],[email protected],ecdsa-sha2- nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,rsa-sha2-512,rsa- sha2-256,ssh-rsa
pubkeyacceptedkeytypes [email protected],ecdsa- [email protected],[email protected],ssh- [email protected],[email protected],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
Ici vous allez court manuel couvrant l'ensemble du processus:
authorized_keys
$ ssh-keygen -t rsa -b 4096Enter Générer une paire de clés rsa publique/privée. Entrer un fichier dans lequel enregistrer la clé (/home/$USER/.ssh/id_rsa): Enter Répertoire créé '/home/$USER/.ssh'. Entrez la phrase secrète (vide pour aucune phrase secrète): tapez votre phrase secrèteEnter Entrez à nouveau le même mot de passe: retaper votre phrase secrèteEnter $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/registered_keys Enter $ chmod go-w ~ / Enter $ chmod 700 ~/.ssh Enter $ chmod 600 ~/.ssh/allowed_keys Enter $ ls -la ~/.ssh Enter drwx ------ 2 utilisateur 4096 août 2 17:21. drwxr-xr-x 3 utilisateur 4096 août 2 17:40 .. - rw ------- 1 utilisateur utilisateur 738 heures 2 17:21 registered_keys - rw ------- 1 utilisateur 3243 août 2 17:15 id_rsa - rw-r --r-- 1 utilisateur utilisateur 738 sur 2 17:15 id_rsa.pub
Veuillez noter que nous n'avons pas besoin d'utiliser Sudo
. Si authorized_keys
existe déjà, la redirection de sortie >>
va simplement ajouter une nouvelle entrée.
Faites un test - SSH sur localhost
en utilisant le nom d'utilisateur de l'utilisateur actuel:
$ chmod 600 ~/.ssh/id_rsa.pub
$ ssh $USER@localhost -i ~/.ssh/id_rsa -p 22 -v
Où: (1) vous pouvez omettre les options -i ~/.ssh/id_rsa -p 22
, car ce sont les valeurs par défaut, et (2) -v
activera le mode commenté. Des informations supplémentaires peuvent être trouvées dans man ssh
.
Veuillez noter que ce test passera "seulement" avec la configuration par défaut de /etc/ssh/sshd_config
. Voici la valeur par défaut sshd_config
d’Ubuntu 16.04.
id_rsa
au format .ppk
et utilisez-laOù .ppk
signifie clé privée PuTTY .
puttygen
pour Linux:L'idée de cette édition supplémentaire est venue de ce sujet où a été discuté la conversion de .ppk
dans un format compatible OpenSSH.
Installez PuTTY-tools
dans Ubuntu. Ouvrez un terminal et tapez:
Sudo apt install PuTTY-tools
Convertir la clé privée:
puttygen ~/.ssh/id_rsa -O private -o ~/.ssh/converted_id_rsa.ppk
Copiez la clé privée convertie (converted_id_rsa.ppk
) dans Windows.
Utilisez cette clé .ppk
avec PuTTY pour vous connecter à Ubuntu. Capture d'écran .
puttygen
pour WindowsCopiez la clé privée (id_rsa
) dans Windows.
Exécutez 'PuTTY Key Generator' (puttygen.exe
) et cliquez sur le bouton Load
. Capture d'écran .
Passez à All Files (*.*)
et Open
votre fichier de clé privée généré dans Ubuntu (id_rsa
). Capture d'écran .
Entrez la phrase secrète s'il en existe une, puis cliquez sur OK
. Une notification apparaîtra - cliquez une nouvelle fois sur OK
. Capture d'écran .
Éditez Key comment
et Key passphrase
si vous en avez besoin et cliquez sur Save private key
. Capture d'écran .
Enregistrez votre nouvelle clé .ppk
dans un emplacement pratique. Capture d'écran .
Utilisez cette clé .ppk
avec PuTTY pour vous connecter à Ubuntu. Capture d'écran .
Références:
Généralement, Network error: Connection refused
signifie que le serveur a entièrement refusé votre connexion SSH . La clé utilisée par PuTTY ne posait pas de problème, car le processus de connexion n'allait pas si loin que ce soit avec des clés. Au lieu de cela, il a immédiatement refusé la connexion. Cela est généralement dû au fait que le serveur n’exécute pas de serveur SSH (ou que le serveur SSH est en panne), que vous avez le mauvais port ou que vous avez la mauvaise adresse de serveur.
Cependant, vous dites que vous ne recevez ce message d'erreur que lorsque vous vous connectez à l'aide d'une clé publique et que vous vous connectez à l'aide d'un mot de passe. Pour ajouter une clé publique pour les connexions entrantes, ajoutez la ligne suivante à ~/.ssh/authorized_keys
sur le serveur (créez le fichier s'il n'existe pas):
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAx+KoPhVxfBrnN8cFb+hG9MveY0cfNpn9mAcNhsfkEvxeG2EqLRYtaXUBXPgl3uILvXYbqG7HSBq/kZe/AICn/aK89rCGAozEepdeaYmy9EtmfPU8pFgTrgMils8X6b5kPPxCBZ2pfeL/q4SUke+/xpV1x98py6PHM8VmJaBciqvaa89QLvWf3IUuxm7798WvGUPlSMtuE2wnYsyJ4W65nBCs4PCROpaPmcmqiP0VF+Vm5vC3W/F00PC1w3R3BMdDoS2VJj7jQTR1Ralbn9cM185/pZY8lvkX4lEQMJvvwRM1Oy/g+J7+RbPR/XTrrRmKQq5mnWU0ICV5qvTnsc+Lyw==
Notez que ceci:
ssh-rsa
AAAAB3
) que vous utilisez actuellement (remplacez-la par la nouvelle si vous en avez généré une nouvelle)Installez le paquet openssh-server à partir du Centre de logiciel Ubuntu. Ou exécutez la commande ci-dessous dans la console si vous êtes sur Ubuntu Server sans interface graphique:
Sudo apt-get install openssh-server
Une fois installé, le service SSH doit être démarré automatiquement. Si nécessaire, vous pouvez démarrer (ou arrêter, redémarrer) le service manuellement via la commande:
Sudo service ssh start
Le numéro de port 22 est celui par défaut. Pour modifier le port, l’autorisation de connexion root, vous pouvez modifier le fichier/etc/ssh/sshd_config via:
Sudo nano/etc/ssh/sshd_config
Supprimez le "#" du fichier sshd_config, préfixé au port 22
C'est un format un peu différent des clés. Un moyen correct de convertir l’un en l’autre est d’utiliser ssh-keygen
:
ssh-keygen -i -f /path/to/public.key
Le résultat pour votre clé ressemble à ceci:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAx+KoPhVxfBrnN8cFb+hG9MveY0cfNpn9mAcNhsfkEvxeG2EqLRYtaXUBXPgl3uILvXYbqG7HSBq/kZe/AICn/aK89rCGAozEepdeaYmy9EtmfPU8pFgTrgMils8X6b5kPPxCBZ2pfeL/q4SUke+/xpV1x98py6PHM8VmJaBciqvaa89QLvWf3IUuxm7798WvGUPlSMtuE2wnYsyJ4W65nBCs4PCROpaPmcmqiP0VF+Vm5vC3W/F00PC1w3R3BMdDoS2VJj7jQTR1Ralbn9cM185/pZY8lvkX4lEQMJvvwRM1Oy/g+J7+RbPR/XTrrRmKQq5mnWU0ICV5qvTnsc+Lyw==
Par conséquent, sur la ligne unique avec l'identifiant de clé ssh-rsa
, au lieu de celui que vous avez utilisé. De plus, les nouvelles lignes importent (il ne peut y en avoir aucune).