実現したいこと
macOSで、RaspberryPiにSFTP通信をしたいのです。
CocoaPodsで、NMSSHライブラリをインストールして、実行しました。
発生している問題・分からないこと
NMSSHライブラリは、iOSでは動作を確認しましたが、macOSでは、IPアドレスの認識は成功するのですが、session.connect()のところでエラーになります。
Outgoing Connections(Client)には、チェックを入れてあります。
何かmacOSの設定があるのでしょうか?どうしてもわかりません。わかる人がいればどうか教えて下さい。
エラーメッセージ
error
1実行結果です。 2 3NMSSH: libssh2 (v1.6.0) initialized 4NMSSH: Start 192.168.11.9 resolution 5NMSSH: Socket connection to 192.168.11.9 on port 22 succesful 6Connection failed 7Owari 8NMSSH: Failure establishing SSH session 9NMSSH: Disconnected 10NMSSH: Disconnected 11 12このように、Failure establishing SSH sessionが出て繋がりません。 13
該当のソースコード
swift
1 2import NMSSH 3 4func nmssh_ogr() { 5 let host = “168.126.11.3" 6 let username = "username" 7 let password = “password” 8 9 let session = NMSSHSession(host: host, andUsername: username) 10 session.connect() 11 if session.isConnected == true { 12 session.authenticate(byPassword: password) 13 print("Pass!!") 14 if session.isAuthorized == true { 15 print("Authentication succeeded") 16 let error: NSErrorPointer = nil 17 let response = session.channel.execute("ls -l", error: error) 18 if response != "" { 19 print("Command executed: \(response)") 20 } else { 21 print("Error executing command: \(error?.pointee?.localizedDescription ?? "Unknown error")") 22 } 23 print("OK!!") 24 } else { 25 print("Authentication failed") 26 } 27 } else { 28 print("Connection failed") 29 } 30 session.disconnect() 31 print("Owari") 32} 33
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
同じコードをiPhoneで実行すると、動作します。
でも、macOSで動作させたい。
もしかして、Objective-Cで動くかなと思ってコードを書いて実行させて見ましたが、やはり同じ結果となりました。
補足
raspberryサーバ側のログです。
ログファイルがどれなのか見てもよくわからないですが、
多分これだと思います。 /var/log/auth.log
May 3 21:29:09 raspberrypi sshd[2259]: Unable to negotiate with 168.126.11.6 port 50268: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1 [preauth]
時間を測ったら、この1行だけがログイン失敗のところです。
------------------------- 調べました -----------------------------
MacのOSは
macOS Sonoma 14.4.1
サーバーのOSは
Raspberry Pi OS
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 11 (bullseye)
Release: 11
Codename: bullseye
Raspberry Piのsshdのバージョンは
OpenSSH_8.4 Raspbian-5+deb11u3, OpenSSL 1.1.1w 11 sep 2023

回答1件
あなたの回答
tips
プレビュー