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

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

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

SSH

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

Raspberry Pi

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

Q&A

1回答

3121閲覧

VS2017(C#)コンソールアプリからraspberry piへのssh接続に関して

inupisu

総合スコア11

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

SSH

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

Raspberry Pi

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

0グッド

0クリップ

投稿2018/06/20 04:35

前提・実現したいこと

VS2017(C#)のコンソールアプリの中でssh.netライブラリを参照し,sshコマンドによってraspberry piにssh接続できるようにしたいです.

ここに質問の内容を詳しく書いてください。
コンソールアプリをVSで作成しました.プログラムの中でssh.netというライブラリを参照し,teratermなどのターミナルソフトを使わずに,raspberry piにプログラムからssh接続できるようにしたいです.VSは2017 言語はC#で,windowsは7です.raspberry piは3のmodelBを使用しており,osはraspbianです.VSが入ってるpcと,raspberry pi同じルータに無線でつながっています.インターネットにはつながっておらず,ローカル(会社内や学校内)で接続されています.teratermなどのソフトでは正常にssh接続ができます.プログラム内でエラーが発生してしまい,それを改善することがどうしてもできません.

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

System.Net.Sockets.SocketException: 'アクセス許可で禁じられた方法でソケットにアクセスしようとしました。'

該当のソースコード

C#

1using System; 2using System.Collections.Generic; 3using System.Linq; 4using System.Text; 5using System.Threading.Tasks; 6using Renci.SshNet; 7 8namespace ConsoleApp2 9{ 10 class Program 11 { 12 static void Main(string[] args) 13 { 14 try 15 { 16 // 接続先のホスト名またはIPアドレス 17 var hostNameOrIpAddr = "xxx.xxx.x.x"; 18 19 // 接続先のポート番号 20 var portNo = 22; 21 22 // ログインユーザー名 23 var userName = "pi"; 24 25 // ログインパスワード 26 var passWord = "xxxxxxxx"; 27 28 // コネクション情報 29 ConnectionInfo info = new ConnectionInfo(hostNameOrIpAddr, portNo, userName, 30 new AuthenticationMethod[] { 31 new PasswordAuthenticationMethod(userName, passWord) 32 /* PrivateKeyAuthenticationMethod("キーの場所")を指定することでssh-key認証にも対応しています */ 33 } 34 ); 35 36 // クライアント作成 37 SshClient ssh = new SshClient(info); 38 39 // 接続開始 40 ssh.Connect(); 41 42 if (ssh.IsConnected) 43 { 44 // 接続に成功した(接続状態である) 45 Console.WriteLine("[OK] SSH Connection succeeded!!"); 46 } 47 else 48 { 49 // 接続に失敗した(未接続状態である) 50 Console.WriteLine("[NG] SSH Connection failed!!"); 51 return; 52 } 53 54 // 接続終了 55 ssh.Disconnect(); 56 } 57 catch (Exception ex) 58 { 59 // エラー発生時 60 Console.WriteLine(ex); 61 throw ex; 62 } 63 } 64 } 65} 66

試したこと

raspberry piでsshを無効にしてまた有効に戻すや,エラーメッセージをいろいろと調べましたが,初心者で知識不足ということもあり改善できませんでした.

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

そもそもssh.netでraspberry piにリモート接続できるのかどうか調べても出てこなかったため,把握していない現状です... すごく的外れで意味の分からないことを言ってしまっているかもしれません.. これより先に進めず困っています.どなたか詳しい方,アドバイスいただけたら嬉しいです.よろしくお願いします.

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

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

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

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

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

y_waiwai

2018/06/20 06:38

どこの行でエラーが出ますか?
inupisu

2018/06/20 07:33

閲覧ありがとうございます. すみません,記載しておくべきでした.. エラーは 最後の throw ex; の部分で出ます.
Naotos

2018/06/22 04:56

trycatchの範囲が広すぎるので細かくしてもらえますか?ssh.Connect();で発生しているのか確認してください。
guest

回答1

0

ぱっとみー、コードの方は正常に見えます。

ラズパイではなく、他のサーバへそれで接続してみたらどうなるでしょう

投稿2018/06/22 04:56

y_waiwai

総合スコア87774

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問