Security News
Maven Central Adds Sigstore Signature Validation
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.
github.com/davidsantia/sftp_util
Example Go-lang command-line utility for SFTP
Confugre the settings for your file transfer, as well as server and credentials, in the SftpUtil struct. The following comments explain the fields to configure:
type SftpUtil struct {
Rdir string // Remote directory
Ldir string // Local directory
Filename string // File to transfer
Type string // GET or PUT
User string // Username
Pass string // Password
Host string // Hostname or IP Address
Port string // TCP port
Client *sftp.Client
}
The routine GetCmdLine() reads comand-line flags to specify the file details and type of transfer. These parameters set the first four fields in the above struct.
A sample main() routine for making a stand-alone sftp utilty is provided in sftp-cmd/sftp-cmd.go
package main
import (
"fmt"
"github.com/DavidSantia/sftp_util"
)
func main() {
sftp := &sftp_util.SftpSettings{}
err := sftp.GetCmdLine()
if err != nil {
fmt.Printf("Command-line error: %v\n", err)
return
}
sftp.User = "USER"
sftp.Pass = "PASSWORD"
sftp.Host = "HOST"
sftp.Port = "22"
// Open SSH session
err = sftp.Connect()
if err != nil {
fmt.Printf("Connect error: %v\n", err)
return
}
defer sftp.Client.Close()
if sftp.Type == "GET" {
err = sftp.GetFile()
if err != nil {
fmt.Printf("GET error: %v\n", err)
return
}
} else if sftp.Type == "PUT" {
err = sftp.PutFile()
if err != nil {
fmt.Printf("PUT error: %v\n", err)
return
}
} else if sftp.Type == "RM" {
err = sftp.RmFile()
if err != nil {
fmt.Printf("RM error: %v\n", err)
return
}
} else {
err = sftp.LsDir()
if err != nil {
fmt.Printf("LS error: %v\n", err)
return
}
}
}
You can buid directly:
$ cd sftp-cmd
$ go build
Alternatively, a build script is provided that builds for linux using a Docker container:
$ ./build.sh
The utility takes the following flags:
Usage of ./sftp-cmd:
-file string
File to transfer
-ldir string
Local directory (default ".")
-nochmod
Don't attempt to set remote file permissions
-rdir string
Remote directory (default ".")
-type string
GET, PUT, RM or LS (required)
FAQs
Unknown package
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.
Security News
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.