質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.54%
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Q&A

解決済

3回答

10054閲覧

XSERVERへのSSH接続ができなくなった。(Windows10)

退会済みユーザー

退会済みユーザー

総合スコア0

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

0グッド

0クリップ

投稿2020/04/02 00:39

編集2020/04/03 05:17

###XSERVERに接続できていたが、「Permission denied (publickey,gssapi-keyex,gssapi-with-mic).のエラー」がでるようになり、接続できなくなった。

ここに質問の内容を詳しく書いてください。
XSERVERにGitを導入し、pushで更新できるようセットアップにトライしていたところ、サーバーにSSH接続できなくなりました。
<環境>
windows 10 home
Powershell, git bash, Tera Term

Tera Termでも「認証に失敗しました。再試行してください。」となります。

「Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

該当のソースコード

PS C:\Users\user> ssh -l サーバーID -i ~/.ssh/sample.key サーバーID.xsrv.jp -p 10022 Enter passphrase for key 'C:\Users\user/.ssh/sample.key': サーバーID@サーバーID.xsrv.jp: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

試したこと

鍵を作り替えた。パスフレーズを再度確認したが結果は変わらなかった。

doda様
ssh -v -l serverID -i ~/.ssh/id_rsa serverID.xsrv.jp -p 10022 にてデバグをしました。
結果は以下の通りでした。

debug1: Connecting to serverID.xsrv.jp [183.181.88.**] port 10022.
debug1: Connection established.
debug1: identity file C:\Users\user/.ssh/id_rsa type 0
debug1: key_load_public: No such file or directory
debug1: identity file C:\Users\user/.ssh/id_rsa-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_for_Windows_7.7
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.4
debug1: match: OpenSSH_7.4 pat OpenSSH* compat 0x04000000
debug1: Authenticating to serverID.xsrv.jp:10022 as 'glowforward'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:V0GmZVuUlP6tQw5MYbGelfcq+IQwq/6+HnH1OPAcaLo
debug1: Host '[serverID.xsrv.jp]:10022' is known and matches the ECDSA host key.
debug1: Found key in C:\Users\user/.ssh/known_hosts:1
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey after 134217728 blocks
debug1: pubkey_prepare: ssh_get_authentication_socket: No such file or directory
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<rsa-sha2-256,rsa-sha2-512>
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic
debug1: Next authentication method: publickey
debug1: Offering public key: RSA SHA256:FOvG8QMCC1TlbABQrKTQ8f3tCFANbkzK7fqVYiProes C:\Users\user/.ssh/id_rsa
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic
debug1: No more authentication methods to try.
serverID@sample.xsrv.jp: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

*個人のサーバーIDをserverIDに変更して記載しております。

補足情報(FW/ツールのバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

maisumakun

2020/04/02 01:07

「Xサーバ」には「X11プロトコルを使ったGUI用のサーバ」という意味があります(無論、これにはもとからSSH接続はできません)。 レンタルサーバのことであれば、「エックスサーバー」あるいは「XSERVER」と表記してください。
退会済みユーザー

退会済みユーザー

2020/04/02 01:12

ありがとうございます。修正します。
guest

回答3

1

ベストアンサー

誤解している人もいるようですが、

Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

というエラーメッセージは「サーバへログインする権限(Permission)が無い」という意味で、単純に認証が失敗したという事を表しています。メッセージ中のPermissionは、ファイルのアクセス権限(Permission)の事ではありません。

その上で、authorized_keys.sshなどのアクセス権限は認証が失敗する理由の一つではありますので、まず関連するファイル/ディレクトリのアクセス権限を確認するのがいいでしょう。

authorized_keys関連のアクセス権限が原因で認証が失敗した場合、/var/log/secure/var/log/auth.logなどに以下のようなメッセージが出ます。

Apr 2 13:29:35 taiyo sshd[29793]: Authentication refused: bad ownership or modes for file /home/user/.ssh/authorized_keys

この例では /home/user/.ssh/authorized_keys の所有者、またはアクセス権限に問題が有るので、ls -l /home/user/.ssh/authorized_keys で所有者/アクセス権限を確認し、

  • 所有者が自分以外の場合は sudo chown ユーザ名 /home/user/.ssh/authorized_keys で所有者を自分に変更する
  • 自分以外に書き込み権限が有った場合は chmod go-w /home/user/.ssh/authorized_keys で書き込み権限を消す

を実行します。
その後ログインを試し、まだログイン出来ない場合は再度ログを確認します。その場合、

Apr 2 13:48:43 taiyo sshd[29793]: Authentication refused: bad ownership or modes for directory /home/user/.ssh

のように親ディレクトリに対して警告が出ていると思われるので、それに対しても同様に対処して、警告が出なくなるまで対処を繰り返してください。


XSERVERの機能を勘違いしていました。VPSではなくてレンタルサーバなのでおそらくroot権限が無いのですね。
それだとサーバ側のログの確認は難しいですね。
~/.ssh/authorized_keys から始まって親ディレクトリを一つづつ辿ってアクセス権限に問題が無いかを確認していく必要があります。

また、鍵を作り直したという事から勘違いしていましたが、もしかしてssh以外でのログイン(シェルアクセス)方法が無い状態ですか?
そうなるとコマンドラインではなくて別の方法で対応する必要がありますね。
XSERVERの機能にファイルマネージャーというのが有るので、これで辿れるすべての親ディレクトリのアクセス権限を確認してみてください。

ファイルやディレクトリのアクセス権限に問題が無い事が確認出来たら、次は正しい鍵か使えているかの確認になります。その場合、ssh -v -l サーバーID -i ~/.ssh/sample.key サーバーID.xsrv.jp -p 10022 を実行した結果を質問に追記出来るでしょうか?

投稿2020/04/02 04:59

編集2020/04/02 09:42
doda

総合スコア947

退会済みユーザー👍を押しています

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/04/02 07:09

詳細なご回答ありがとうございます。調べたものの自分の知識が不足しており大変恐縮しております。 git bashを使いアクセス権限をクライアントサイドの権限を確認しましたが、chmodで変更できませんでした。また、windowsでログを見る知識がないので学習して出直します。 丁寧なご回答ありがとうございます。
doda

2020/04/02 09:10

ログを確認したりアクセス権限を変更するのはWindowsではなくてサーバ側で行う必要が有ります。Windows側からは認証が失敗したという事しかわからないので、出来る対処も少ないです。 sshコマンドだけならば秘密鍵ファイル等のアクセス権限の可能性も有りましたが、Tera Termでも認証が失敗したのならばその秘密鍵での認証を拒否されたという事になりますので、サーバ側を確認する必要があります。
退会済みユーザー

退会済みユーザー

2020/04/02 11:57

貴重なお時間をご返答に割いて頂きありがとうございます。 サーバー側の権限は.sshが700、authorized.keyが600と正常だと思います。自分の知識が不足しており、サーバー側のログの確認をどうしようか試行錯誤しております。
yukky1201

2020/04/03 02:21

デバッグの時のコマンドが間違ってます(id_rsaという名前の鍵で認証しようとしている)ので正しい鍵(sample.keyでしょうか)で再試行してください ところで、xserverのSSH接続の仕方はこちらに記載のやり方であってますか。ここを見るとサーバ側で設定をいじることはないようですが。 https://www.xserver.ne.jp/manual/man_server_ssh.php
退会済みユーザー

退会済みユーザー

2020/04/03 03:01

ご指摘ありがとうございます。 今回はgithubとXSERVERで同じ公開鍵を使いたいので、URLで頂いた記載のやり方の中で<お客さまにて作成の公開鍵を登録する場合>で行っており、クライアント側の秘密鍵はid_rsaで登録しました。現状、Tera Termでもサーバー側に接続できず、サーバー側のauthorized.keyの所有者やログなど確認ができない状況です。
yukky1201

2020/04/03 04:29

設定ファイルをいじってどうこうする環境ではなさそうですので、XSERVERに問い合わせるのが一番近道ではないですか
退会済みユーザー

退会済みユーザー

2020/04/03 05:06

今朝問い合わせをしました。アドバイスありがとうございます。
退会済みユーザー

退会済みユーザー

2020/04/03 05:16

<結果>XSEVERカスタマーサービスより、**/home/serverID** の**パーミッション値を701**に修正していただき、SSH接続することができるようになりました。 よって、今回のエラーは皆様にご指摘いただいた通りサーバーのディレクトリのアクセス権限が原因でした。 Windows10環境では、クライアント側のディレクトリはパーミッションを変更する必要がないこともわかりました。 ご協力ありがとうございました。
guest

0

pwd /home/user_name/

でご自身のホームのパーミッションを700に変更はされましたか?
具体的にはには下記部分

chmod 700 user_name

user_name が ご自身の使われてるアカウント名となります。

投稿2020/04/02 04:02

編集2020/04/02 04:04
nanami12

総合スコア1015

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/04/02 05:48

ご回答ありがとうございます。git bash で 上記を試みましたが $ chmod 700 user chmod: cannot access 'user': No such file or directory でした。 環境はwindows 10です。
guest

0

パーミッションのエラーのようです。

Qiita | Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

投稿2020/04/02 01:14

編集2020/04/02 01:15
kyoya0819

総合スコア10429

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/04/02 02:01 編集

ご回答ありがとうございます。 頂いたURLをもとに自分の状況を調べたところ、XSERVERの.sshとauthorized.keyの権限はそれぞれ700,600でした。環境はwindows10 homeです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.54%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

同じタグがついた質問を見る

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。