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

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

新規登録して質問してみよう
ただいま回答率
85.39%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

公開鍵認証

公開鍵認証とは、公開鍵と秘密鍵の2つの鍵の組を利用する、SSHで利用される認証方式です。

SSH

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

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Q&A

解決済

1回答

23457閲覧

win10のOpenSSHでconfigファイルの権限が云々で設定できない

kosetei

総合スコア64

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

公開鍵認証

公開鍵認証とは、公開鍵と秘密鍵の2つの鍵の組を利用する、SSHで利用される認証方式です。

SSH

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

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

0グッド

1クリップ

投稿2019/07/09 08:50

編集2023/12/04 07:07

前提・実現したいこと

Windows10からraspberry piに公開鍵でSSH接続したい

発生している問題・エラーメッセージ

のですが、クライアントの.sshフォルダにconfigファイルを作っても

Bad owner or permissions on C:\Users\xxxx/.ssh/config

というエラーが出て読み取ってくれません。
コマンドの段階で

ssh -i .ssh/id_rsa pi@192.168.0.35

と指定すれば接続はできます。
クライアントにはWindows10しかOSはインストールしていないので、謎です。

configの中身

Host raspi HostName 192.168.0.35 User pi IdentityFile C:\Users\xxxx.ssh\id_rsa

試したこと

プロパティからいろいろ権限を変えてみましたが特に変わりありませんでした。

補足情報

WindowsはHomeです。
コマンドプロンプトです。

SSHコマンドは
設定→アプリと機能→オプション機能→機能の追加
からインストールして使えるようにした、OpenSSHクライアントです。

OpenSSHがインストしなくても最初から使えた別のPC(win10pro)では問題ありませんでした。

追記

where sshの結果は
C:\Windows\System32\OpenSSH\ssh.exe
検索してもここ以外にはssh.exeはありません。

configの中身を

Host raspi HostName 192.168.0.35 User pi IdentityFile "C:\Users\xxxx.ssh\id_rsa"

にしてみましたが、変化ありません。
configを正常に読み込めた先述PCでは元のファイルのまま、利用できています。

コマンドプロンプトの作業ディレクトリは
C:\Users\xxxx>でも
C:\Users\kose.ssh>でも
変わりありません。

接続出来たPCで表示されるメッセージ

コピペしますので隠したほうがよさげなものがあれば教えてください。

C:\Users\xxxx>ssh raspi Linux raspberrypi 4.19.57-v7+ #1244 SMP Thu Jul 4 18:45:25 BST 2019 armv7l The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Tue Jul 9 20:50:48 2019 Linux raspberrypi 4.19.57-v7+ #1244 SMP Thu Jul 4 18:45:25 BST 2019 armv7l The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Tue Jul 9 20:50:48 2019 Wi-Fi is currently blocked by rfkill. Use raspi-config to set the country before use. pi@raspberrypi:~ $

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

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

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

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

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

rubytomato

2019/07/09 09:37

コマンドプロンプトから"where ssh"で、どのsshにパスが通っているか確認、質問文に追記をお願いします。 それとconfigファイルの IdentityFile C:\Users\xxxx\.ssh\id_rsa の部分を、次のようにダブルクォーテーションで囲み、区切り文字をスラッシュに変えて確認してみてください。 IdentityFile "C:/Users/xxxx/.ssh/id_rsa"
kosetei

2019/07/09 11:37

where sshの結果は C:\Windows\System32\OpenSSH\ssh.exe 検索してもここ以外にはssh.exeはありません。 ダブルクォーテーションは変化ありませんでした。
rubytomato

2019/07/09 14:21

同じconfigファイルでも、Win10Proからは接続できWin10Homeからは接続できないということでしょうか? ということであれば、それぞれのPCで"ssh.exe -V"としてバージョンに違いがないか確認してみてください。 また、configファイルをエクスプローラで右クリック→プロパティ→セキュリティ→アクセス権限の設定にも違いがないか確認をお願いします。
kosetei

2019/07/09 17:53

アクセス権限にあった不明な権限を削除したら行けました。 非常に参考になりました。ありがとうございました。
kosetei

2019/07/09 18:40

rubytomato様のおかげで解決したようなものなので、自分の回答をベスアンにするのは申し訳ないです。よろしければ、ご回答ください。
guest

回答1

0

自己解決

三行で

問題なく接続できるPCとbat permissionsが出て接続できないPCのファイルの権限を見比べたところ、
エラーが出るほうには不明なアカウントに許可が出されていました。
このアカウントの許可を削除したところ、解決しました。

詳しく

OpenSSHの最新版ではセキュリティが強化されているため、設定ファイルが他のユーザから見えないようにしていないと接続ができない。

らしいです。
以前HDDからSSDに換装したためか、一時的に別アカウントを作ったためか(今はすでに削除してある)どちらかだと思いますが、ホームディレクトリすべてにこの不明なアカウントへの権限が継承されており、新たに作った.sshフォルダ内にも継承されていたようです。

なお、同じフォルダに置く、id_rsaファイルにも余計なアクセス権があると、以下のようなエラー

The authenticity of host '192.168.0.35 (192.168.0.35)' can't be established. ECDSA key fingerprint is SHA256xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnTvWOGg. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.0.35' (ECDSA) to the list of known hosts. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions for 'C:\Users\xxxx\.ssh\id_rsa' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. Load key "C:\Users\xxxx\.ssh\id_rsa": bad permissions pi@192.168.0.35: Permission denied (publickey).

が出て、やはりアクセスできないので、削除しなければなりません。
わたしは鍵を作る際にパスキーを設定したためか、こちらのエラーは出ずに済んでいましたが、パスキーなしのカギを生成しなおしたところこのエラーが出ました。

なお、親フォルダから継承された権限をここだけ削除するには
プロパティ→セキュリティタブ→詳細設定
で継承の無効化をしなければなりません。

が、そもそも、不明なアカウントへのアクセス許可を残しておくなんて、気持ち悪いことこの上ないので、ホームディレクトリ全体から削除しておきました。

私はよく知りませんが、同じディレクトリを複数のアカウントやOSで共有している人は、ここだけ権限を削除しなきゃいけないのでしょう。
やり方は知りませんが、どうにかしてここだけ権限を自分だけにしてください。
Windowsではsystemとadministratorsと自分でOKでした。

参考

投稿2019/07/09 18:38

編集2023/12/04 07:05
kosetei

総合スコア64

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

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

rubytomato

2019/07/10 11:14

解決なさったようでなによりです。回答を見させて頂きましたが、十分自己解決といえる内容だと思いますので、自己解決にしていただければと思います。
kosetei

2019/07/10 11:18

ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.39%

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

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

質問する

関連した質問