2015-07-14 27 views
5

Gần đây, tôi đã cố gắng tạo một chương trình (rất đơn giản) với Swift cho phép bạn kết nối với máy chủ thông qua SSH và thực thi một số tệp. Thật không may, tôi không thể tìm ra cách để bắt đầu một phiên SSH hoàn toàn trong ứng dụng Swift. Dưới đây là một số mã mà tôi đã viết:Kết nối SSH bằng Swift

var sshConnectCommand = ["-c", "spawn ssh "+sshUsername+"@"+sshHost+"; expect assword:; send "+sshPassword+"\r"] 
func sshIn() { 
    //starting ssh session 
    let sshConnect = NSTask() 
    sshConnect.arguments = [testCmd] 

    //rerouting output through a pipe 
    sshConnect.standardOutput = logAppend 

    //launch! 
    sshConnect.launch(); 
} 

Như bạn thấy đấy, tôi đã sử dụng NSTask để thử và chạy 'hy vọng' lệnh để nhập mật khẩu và tất cả mọi thứ. Tôi muốn thử và tránh sử dụng SSH-keygen càng nhiều càng tốt vì điều này được dự định sẽ được sử dụng một máy chủ mà người dùng không có quyền truy cập.

Vì vậy, để tổng hợp: Làm cách nào bạn kết nối với SSH mà không có SSH-keygen trong khi vẫn hoàn toàn nằm trong mã ứng dụng?

chỉnh sửa: Tôi cũng nên thêm, khi cố gắng biên dịch, tôi gặp lỗi này: [Swift._SwiftDeferredNSArray fileSystemRepresentation]: unrecognized selector sent to instance 0x600000032500. Tôi không chắc điều này có nghĩa là gì.

+0

Có vẻ như bạn có một mảng ở đâu đó mà một đối tượng khác (một NSURL, tôi đoán) được mong đợi. – Kevin

Trả lời

Các vấn đề liên quan