diff --git a/dev/.documenter-siteinfo.json b/dev/.documenter-siteinfo.json index 362fda2..5742278 100644 --- a/dev/.documenter-siteinfo.json +++ b/dev/.documenter-siteinfo.json @@ -1 +1 @@ -{"documenter":{"julia_version":"1.10.5","generation_timestamp":"2024-09-05T20:30:39","documenter_version":"1.7.0"}} \ No newline at end of file +{"documenter":{"julia_version":"1.10.5","generation_timestamp":"2024-09-05T20:44:24","documenter_version":"1.7.0"}} \ No newline at end of file diff --git a/dev/index.html b/dev/index.html index 9e6a802..3d6bc4a 100644 --- a/dev/index.html +++ b/dev/index.html @@ -21,4 +21,4 @@ sftp = SFTP("sftp://mysitewhereIhaveACertificate.com", "myuser", "cert.pub", "cert.pem") # The cert.pem is your certificate (private key), and the cert.pub can be obtained from the private # key as following: ssh-keygen -y -f ./cert.pem. Save the output into "cert.pub". - + diff --git a/dev/reference/index.html b/dev/reference/index.html index 399cbd2..7a284ae 100644 --- a/dev/reference/index.html +++ b/dev/reference/index.html @@ -1,11 +1,11 @@ SFTPClient API Documentation · Julia SFTPClient Documentation

SFTPClient API Documentation

Base.Filesystem.mvMethod

mv( sftp::SFTP, oldname::AbstractString, newname::AbstractString; )

Move, i.e., rename the file.

source
Base.Filesystem.readdirFunction

readdir(sftp::SFTP, join::Bool = false, sort::Bool = true)

Reads the current directory. Returns a vector of Strings just like the regular readdir function.

source
Base.Filesystem.mvMethod

mv( sftp::SFTP, oldname::AbstractString, newname::AbstractString; )

Move, i.e., rename the file.

source
Base.Filesystem.readdirFunction

readdir(sftp::SFTP, join::Bool = false, sort::Bool = true)

Reads the current directory. Returns a vector of Strings just like the regular readdir function.

source
SFTPClient.downloadFunction

SFTPClient.download( sftp::SFTP, file_name::AbstractString, output = tempname();downloadDir::Union{String, Nothing}=nothing)

 Download a file. You can download it and use it directly, or save it to a file. 
+Remove (delete) the file
source
SFTPClient.downloadFunction

SFTPClient.download( sftp::SFTP, file_name::AbstractString, output = tempname();downloadDir::Union{String, Nothing}=nothing)

 Download a file. You can download it and use it directly, or save it to a file. 
  Specify downloadDir if you want to save downloaded files. You can also use broadcasting.
 Example:
 
@@ -15,9 +15,9 @@
 SFTPClient.download.(sftp, files, downloadDir=downloadDir)
 
 You can also use it like this:
-df=DataFrame(CSV.File(SFTPClient.download(sftp, "/mydir/test.csv")))
source
SFTPClient.rmdirMethod
rmdir(sftp::SFTP, dir_name::AbstractString)
+df=DataFrame(CSV.File(SFTPClient.download(sftp, "/mydir/test.csv")))
source
SFTPClient.sftpstatMethod

sftpstat(sftp::SFTP, path::AbstractString)

Like Julia stat, but returns a Vector of SFTPStatStructs. Note that you can only run this on directories. Can be used for checking if a file was modified, and much more.

source
SFTPClient.uploadMethod

upload(sftp::SFTP, file_name::AbstractString)

Upload (put) a file to the server. Broadcasting can be used too.

files=readdir() upload.(sftp,files)

source
SFTPClient.walkdirMethod
SFTPClient.walkdir(sftp::SFTP, root; topdown=true, follow_symlinks=false, onerror=throw)
+Remove (delete) the directory
source
SFTPClient.sftpstatMethod

sftpstat(sftp::SFTP, path::AbstractString)

Like Julia stat, but returns a Vector of SFTPStatStructs. Note that you can only run this on directories. Can be used for checking if a file was modified, and much more.

source
SFTPClient.uploadMethod

upload(sftp::SFTP, file_name::AbstractString)

Upload (put) a file to the server. Broadcasting can be used too.

files=readdir() upload.(sftp,files)

source
SFTPClient.walkdirMethod
SFTPClient.walkdir(sftp::SFTP, root; topdown=true, follow_symlinks=false, onerror=throw)
 Return an iterator that walks the directory tree of a directory.
 The iterator returns a tuple containing `(rootpath, dirs, files)`.
 
@@ -34,4 +34,4 @@
         println(joinpath(root, file)) # path to files
     end
 end
-```
source
SFTPClient.SFTPMethod

SFTP(url::AbstractString, username::AbstractString, publickeyfile::AbstractString, privatekeyfile::AbstractString;disableverifypeer=false, disableverifyhost=false, verbose=false)

Creates a new SFTP client using certificate authentication, and keys in the files specified

sftp = SFTP("sftp://mysitewhereIhaveACertificate.com", "myuser", "test.pub", "test.pem")

source
SFTPClient.SFTPMethod

SFTP(url::AbstractString, username::AbstractString, password::AbstractString;createknownhostsentry=true, disableverifypeer=false, disableverify_host=false)

Creates a new SFTP Client: url: The url to connect to, e.g., sftp://mysite.com username: The username to use password: The users password createknownhosts_entry: Automatically create an entry in known hosts

Example: sftp = SFTP("sftp://test.rebex.net", "demo", "password")

source
SFTPClient.SFTPMethod

SFTP(url::AbstractString, username::AbstractString;disableverifypeer=false, disableverifyhost=false)

Creates a new SFTP client using certificate authentication.

sftp = SFTP("sftp://mysitewhereIhaveACertificate.com", "myuser")

Note! You must provide the username for this to work.

Before using this method, you must set up your certificates in ~/.ssh/idrsa and ~/.ssh/idrsa.pub

Of course, the host need to be in the known_hosts file as well.

Test using your local client first: ssh myuser@mysitewhereIhaveACertificate.com

See other method if you want to use files not in ~/ssh/

source
+```source
SFTPClient.SFTPMethod

SFTP(url::AbstractString, username::AbstractString, publickeyfile::AbstractString, privatekeyfile::AbstractString;disableverifypeer=false, disableverifyhost=false, verbose=false)

Creates a new SFTP client using certificate authentication, and keys in the files specified

sftp = SFTP("sftp://mysitewhereIhaveACertificate.com", "myuser", "test.pub", "test.pem")

source
SFTPClient.SFTPMethod

SFTP(url::AbstractString, username::AbstractString, password::AbstractString;createknownhostsentry=true, disableverifypeer=false, disableverify_host=false)

Creates a new SFTP Client: url: The url to connect to, e.g., sftp://mysite.com username: The username to use password: The users password createknownhosts_entry: Automatically create an entry in known hosts

Example: sftp = SFTP("sftp://test.rebex.net", "demo", "password")

source
SFTPClient.SFTPMethod

SFTP(url::AbstractString, username::AbstractString;disableverifypeer=false, disableverifyhost=false)

Creates a new SFTP client using certificate authentication.

sftp = SFTP("sftp://mysitewhereIhaveACertificate.com", "myuser")

Note! You must provide the username for this to work.

Before using this method, you must set up your certificates in ~/.ssh/idrsa and ~/.ssh/idrsa.pub

Of course, the host need to be in the known_hosts file as well.

Test using your local client first: ssh myuser@mysitewhereIhaveACertificate.com

See other method if you want to use files not in ~/ssh/

source
diff --git a/dev/troubleshooting/index.html b/dev/troubleshooting/index.html index 74659e9..023f564 100644 --- a/dev/troubleshooting/index.html +++ b/dev/troubleshooting/index.html @@ -1,2 +1,2 @@ -Troubleshooting · Julia SFTPClient Documentation

Troubleshooting

If you get: RequestError: Failure establishing ssh session: -5, Unable to exchange encryption keys while requesting... Try and upgrade to Julia 1.9.4. It seems to be a bug in an underlying library.

If it does not work, check your known_hosts file in your .ssh directory. ED25519 keys do not seem to work.

Use the ssh-keyscan tool: From command line, execute: ssh-keyscan [hostname]. Add the ecdsa-sha2-nistp256 line to your knownhosts file. This file is located in your .ssh-directory. This is directory is located in C:\Users\{youruser}\.ssh on Windows and ~/.ssh on Linux.

___Note: Setting up certificate authentication___

To set up certificate authentication, create the certificates in the ~/.ssh/idrsa and ~/.ssh/idrsa.pub files. On Windows these are located in C:\Users\{your user}\.ssh.

Then use the function sftp = SFTP("sftp://mysitewhereIhaveACertificate.com", "myuser") to create a SFTP type.

Example files

___in "known_hosts"___ mysitewhereIhaveACertificate.com ssh-rsa sdsadxcvacvljsdflsajflasjdfasldjfsdlfjsldfj

___in "id_rsa"___

––-BEGIN RSA PRIVATE KEY––- ..... cu1sTszTVkP5/rL3CbI+9rgsuCwM67k3DiH4JGOzQpMThPvolCg=

––-END RSA PRIVATE KEY––-

___in id_rsa.pub___ ssh-rsa AAAAB3...SpjX/4t Comment here

After setting up the files, test using your local sftp client:

ssh myuser@mysitewhereIhaveACertificate.com

+Troubleshooting · Julia SFTPClient Documentation

Troubleshooting

If you get: RequestError: Failure establishing ssh session: -5, Unable to exchange encryption keys while requesting... Try and upgrade to Julia 1.9.4. It seems to be a bug in an underlying library.

If it does not work, check your known_hosts file in your .ssh directory. ED25519 keys do not seem to work.

Use the ssh-keyscan tool: From command line, execute: ssh-keyscan [hostname]. Add the ecdsa-sha2-nistp256 line to your knownhosts file. This file is located in your .ssh-directory. This is directory is located in C:\Users\{youruser}\.ssh on Windows and ~/.ssh on Linux.

___Note: Setting up certificate authentication___

To set up certificate authentication, create the certificates in the ~/.ssh/idrsa and ~/.ssh/idrsa.pub files. On Windows these are located in C:\Users\{your user}\.ssh.

Then use the function sftp = SFTP("sftp://mysitewhereIhaveACertificate.com", "myuser") to create a SFTP type.

Example files

___in "known_hosts"___ mysitewhereIhaveACertificate.com ssh-rsa sdsadxcvacvljsdflsajflasjdfasldjfsdlfjsldfj

___in "id_rsa"___

––-BEGIN RSA PRIVATE KEY––- ..... cu1sTszTVkP5/rL3CbI+9rgsuCwM67k3DiH4JGOzQpMThPvolCg=

––-END RSA PRIVATE KEY––-

___in id_rsa.pub___ ssh-rsa AAAAB3...SpjX/4t Comment here

After setting up the files, test using your local sftp client:

ssh myuser@mysitewhereIhaveACertificate.com