# Functions
HostKey reads private key from disk or creates it if necessary.
IsServiceUser returns true if Permissions are created for service (deploy-agent) user that should only have read-only access.
NewDownloadServer returns read-only sftp.RequestServer that processes get requests with provided FileReadFunc and list, stat, readlink requests using provided FileListerFunc.
NewFile creates new virtual file.
NewUploadServer returns sftp.RequestServer that only handles file uploads (put requests) using newUploadHandlers.
ServerSetup reads provided both authorized_keys files located at opAuth and srvAuth, reads or creates private key from keyFile and sets up ssh.ServerConfig using public key authentication.
# Constants
UploadPrefix is used when creating temporary files to save uploads to.
# Interfaces
SftpFile combines interfaces required for sftp virtual file implementations.
# Type aliases
FileListerFunc is a function from sftp.FileLister interface.
FileReadFunc is a function from sftp.FileReader interface.
Listerat implements sftp.ListerAt interface (copied from the sftp package).