Sshキーでサーバーにログインしようとしています(PuTTYを使用してログインしています)が、接続しようとするたびに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 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
ここでは、プロセス全体をカバーする短いマニュアルをご覧ください。
authorized_keys
ファイルを作成します$ ssh-keygen -t rsa -b 4096Enter パブリック/プライベートrsaキーペアを生成します。 キーを保存するファイルを入力します(/home/$USER/.ssh/id_rsa): Enter 作成されたディレクトリ '/home/$USER/.ssh'。 パスフレーズを入力します(パスフレーズがない場合は空): パスフレーズを入力してくださいEnter 同じパスフレーズをもう一度入力してください: パスフレーズを再入力してください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 4096апр2 17:21。 drwxr-xr-x 3ユーザーuser 4096апр2 17:40 .. -rw ------- 1ユーザー738апр2 17:21 authorized_keys -rw ------- 1ユーザーuser 3243апр2 17:15 id_rsa -rw-r --r-- 1ユーザーuser 738апр2 17:15 id_rsa.pub
Sudo
を使用する必要はありません。 authorized_keys
が既に存在する場合、出力リダイレクト>>
は新しいエントリを追加します。
テストを行う-現在のユーザーのユーザー名を使用してlocalhost
にSSH接続します。
$ 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
を使用する:この追加編集のアイデアは、 このトピック から生まれました。ここでは、.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
を使用する秘密キー(id_rsa
)をWindowsにコピーします。
「PuTTY Key Generator」(puttygen.exe
)を実行し、Load
ボタンをクリックします。 スクリーンショット 。
Ubuntuで生成されたAll Files (*.*)
およびOpen
に切り替えます(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
で始まる)である必要があります(新しいものを生成した場合は、新しいものに置き換えてください)Ubuntu Software Centerからopenssh-serverパッケージをインストールします。または、GUIなしのUbuntu Serverを使用している場合は、コンソールで次のコマンドを実行します。
Sudo apt-get install openssh-server
インストールすると、SSHサービスが自動的に開始されます。必要に応じて、コマンドを使用して手動でサービスを開始(または停止、再起動)できます。
Sudo service ssh start
ポート番号22がデフォルトです。ポート、rootログイン許可を変更するには、次の方法で/ etc/ssh/sshd_configファイルを編集できます。
Sudo nano/etc/ssh/sshd_config
ポート22のプレフィックスが付いたsshd_configファイルから「#」を削除します
これは、キーの形式が少し異なります。一方を他方に変換する適切な方法は、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
を含む単一行で。改行も重要です(なしも可能です)。